漏洞概要
关注数(24)
关注此漏洞
漏洞标题:傲游浏览器RSS订阅处继续XSS导致远程命令执行(有条件)
相关厂商:傲游
提交时间:2015-05-19 10:49
修复时间:2015-08-18 23:44
公开时间:2015-08-18 23:44
漏洞类型:远程代码执行
危害等级:高
自评Rank:15
漏洞状态:厂商已经修复
Tags标签:
无
漏洞详情
披露状态:
2015-05-19: 细节已通知厂商并且等待厂商处理中
2015-05-20: 厂商已经确认,细节仅向厂商公开
2015-07-14: 细节向核心白帽子及相关领域专家公开
2015-07-24: 细节向普通白帽子公开
2015-08-03: 细节向实习白帽子公开
2015-08-18: 厂商已经修复漏洞并主动公开,细节向公众公开
简要描述:
看http://www.wooyun.org/bugs/wooyun-2015-0114083,据说4.4.5.1800 中已处理.但是,这么多正则来过滤,难免不会再次出问题。
老是在修XSS,何时是个头。
详细说明:
下载最新的4.4.5.1800,依然存在问题。
问题还是出在 RSS的过滤函数上,如下图所示:
其中 y.baseUrl来自 /rss/channel/link 这个节点。
这段代码有什么问题呢?
如果我们恶意构造 z 的内容,即构造/rss/channel/item/description结合,让其 含有以下html代码,
例如改成下面这样:
<description><![CDATA[<strong>a</strong><img a=" src="/" />]]></description>
根据正则的匹配, 此时 A 为 a=" , E 为 src属性的值,即为 /
替换后的内容为
<img a=" src="XXXXXXXXXX "
可以看到,如果XXXXXXXX我们可以控制的话,那么就可以成功XSS。
XXXXXXXX 的值来自于 n(E, y) ,我们来看看 n 函数,
可以看到 n 函数的返回值 由 baseUrl 构成,而baseUrl上面说到是来自来自 /rss/channel/link 这个节点。
如此一来,我们只需要把 /rss/channel/link 这个节点的值,恶意构造成XSS代码即可。
<link>/ src=1 onerror=alert(1)//</link>
----------------------------------
综合起来的XML代码如下:
XSS成功执行:
至于命令执行,只需要把link部分稍微做改动即可:
漏洞证明:
见:http://appmaker.sinaapp.com/mxpoc-2015-5-19.xml
修复方案:
1. 继续修正则,
2. 但是如果这样继续修,太容易继续被X了。是否考虑其它方式来避免此类问题?
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:5
确认时间:2015-05-20 23:43
厂商回复:
内核已限制 RSS 中调用exe及写入本地文件
下一步继续完善过滤
最新状态:
2015-06-16:4.4.5.3000 已修复