漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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。于是控制台测试以下代码:
发现可以成功执行,这样一来,我们可以在任何页面里通过这段代码来执行特权API了。
2. 特权API bdbrowser.skin.download 的 的 name参数未过滤,导致可以将皮肤文件下载至系统盘的任意指定目录内。
例如以上代码,将会在系统盘根目录下生成一个cmd.exe,如下图所示:
3. 我们要实现执行命令,还需要将程序写入到系统的“启动”目录下。
但启动目录的路径中,需要知道 用户名信息。经过研究发现:
AppService.AppMarket.DownloadPack 和 AppService.AppMarket.DeleteExt 这2个API均可导致用户名泄漏,其中不使用我前面所发布的上一个漏洞中用到的技巧的话,前者会弹出安装提示,而后者不会提示,但是后者要求用户装过插件方可。
4. 结合以上三个步骤,我们可以构建以下PoC代码,仅供参考,在WIN7和IE下进行了测试。
最终执行后,效果如下图所示:
漏洞证明:
在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
厂商回复:
感谢提交,已通知业务部门处理。
最新状态:
暂无