漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-083294
漏洞标题:百度浏览器远程命令执行五
相关厂商:百度
漏洞作者: gainover
提交时间:2014-11-14 17:54
修复时间:2015-02-12 17:56
公开时间:2015-02-12 17:56
漏洞类型:远程代码执行
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-11-14: 细节已通知厂商并且等待厂商处理中
2014-11-17: 厂商已经确认,细节仅向厂商公开
2014-11-20: 细节向第三方安全合作伙伴开放
2015-01-11: 细节向核心白帽子及相关领域专家公开
2015-01-21: 细节向普通白帽子公开
2015-01-31: 细节向实习白帽子公开
2015-02-12: 细节向公众公开
简要描述:
一直以为百度浏览器没更新哇,看新闻才知道,百度浏览器已经发布第7版本(7.0.400.292),于是又下载下来研究了一番,相对于第6版本,在一些API上确实有了不小的安全改进,但是也有一些7版本上的改进,反而导致可以远程命令执行。
详细说明:
1. 首先,我们用百度浏览器随便打开一个本地的页面,比如file:///C:/xxxxxx,你会发现出现以下报错,F12控制台内 location.href查看,可以看到URL改变为:data:text/html,biduwebdata
不要奇怪我为什么会这么测试,因为在6版本的百度浏览器中 data:text/html,biduwebdata 域下存在XSS,所以我其实是想看看 data:text/html,biduwebdata 在7版本中是否也存在,你可以看到我们所输入的URL在页面中被输出,那么会不会这里没有转义呢?
于是在bdbrowser域下用以下代码进行测试,(因为http域无法重定向至 file域,所以在bdbrowser域下测试):
可以看到弹窗了。
2. 第2个问题来了, data:text/html,biduwebdata 这个是data协议的,这个协议下有特权吗? 答案是:6版本的百度浏览器是没有的,但这个最新版本的,data:text/html,biduwebdata 这个URL下是有特权的,但其它data:xxx是没有的。
3. 这样一来,我们的第一步,特权域XSS就已经有了。但是,我们如何从http域重定向至file域呢?
A. 我们重定向至一个不存在的协议?
似乎并不能实现和file域一样的效果。
B. about协议则直接打开了空白页
C. 还有一个比较常见的res://协议,我们试试~~
如上图所示,我们可以看到res协议实现了和file协议一样的效果,且 http协议可以跳转至res协议
4. 因此,XSS我们有了, 如何实现命令执行呢? 我对之前测试过的API进行了一些测试,例如皮肤下载,插件下载,均已作出了一定的安全限制。然而,有一个功能比较显眼:
上图涉及到2个部分:
一是静默下载,即不需要用户交互,便可将指定程序下载到下载目录。
二是下载目录设置。
如果我们设置为静默下载,并将下载目录指向用户的启动目录,然后让用户下载一个exe,那么该exe将会被下载到用户的启动目录中。
5. 有了特权域的XSS,以上想法,我们并不难实现,这里直接给出代码,代码中含有注释。
A. 重定向至res://....,触发XSS,调用baidupoc5.js
B. baidupoc5.js代码如下:
漏洞证明:
修复方案:
修复 data:text/html,biduwebdata 下的XSS,
浏览器在设置用户下载目录时,需要启用一定的用户交互,以避免随意一个特权域XSS即可更改此设置。
版权声明:转载请注明来源 gainover@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2014-11-17 12:35
厂商回复:
感谢提交,已通知业务部门处理
最新状态:
暂无