漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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,如下可在新标签页打开乌云。
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文件。
SogouMobileUtils接口的downloadFileWithUrlNoDialog方法和getHistorysForFeedback方法可以用来自动下载文件和读取历史记录。
downloadFileWithUrlNoDialog方法接受一个字符串参数作为下载地址。
getHistorysForFeedback方法接受一个整型参数作为获取历史记录的条数。
将url和时间戳用AES加密再base64后返回,密钥为##sogoumse2015##。
解密后的内容
测试版本
漏洞证明:
POC地址:
http://utf7.ml/t/sogou1.html
修复方案:
版权声明:转载请注明来源 Lyleaks@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2016-03-23 22:47
厂商回复:
感谢支持
最新状态:
暂无