漏洞概要
关注数(24)
关注此漏洞
漏洞标题:QQ空间某功能缺陷导致日志存储型XSS - 15
相关厂商:腾讯
提交时间:2014-02-20 16:43
修复时间:2014-04-06 16:43
公开时间:2014-04-06 16:43
漏洞类型:xss跨站脚本攻击
危害等级:高
自评Rank:15
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-02-20: 细节已通知厂商并且等待厂商处理中
2014-02-21: 厂商已经确认,细节仅向厂商公开
2014-03-03: 细节向核心白帽子及相关领域专家公开
2014-03-13: 细节向普通白帽子公开
2014-03-23: 细节向实习白帽子公开
2014-04-06: 细节向公众公开
简要描述:
一枚mXSS(来自老外的叫法),算是比较新鲜的玩意。。
详细说明:
首先声明这是一个IE特异的XSS问题。为了理解这个问题,首先看下面的代码:
可以看出 <LISTING><img src=x onerror=alert(1)></LISTING> 是一段无害的代码,
但是进入x的innerHTML后,再取出x的innerHTML时,变成了有害的HTML代码
<LISTING><img src=x onerror=alert(1)></LISTING>
当这个有害的代码再次进入其它元素的innerHTML时,就会触发XSS。
------------------------------
为了利用上面这种情况,我们需要假想以下流程。
看起来有点繁琐,那么是否可以找到这样的场景呢?这里我就拿QQ空间日志为例(对QQ空间的JS代码熟悉点。。)
1. 我们选择模板日志进行发布日志,在日志内容里插入上面提到的那段代码:
看返回的日志内容得出结论是:腾讯的过滤器并不会过滤listing标签。
2. 第一步是前提,接着我们就要找 innerHTML的一进一出。这里我定位到/qzone/app/blog/v6/script/blog_content.js中的Title.parse
在这段代码中,content是我们可控的日志内容,titleArr是正则匹配后的结果,也是我们可控的内容。接着在for循环中,可以看到titleArr的内容进入了 textDiv.innerHTML,这正是我们上面所绘制步骤中的第一步。这些textDiv的子节点被push到result数组中返回。
3. 我们看看Title.parse的返回值去了哪里?相关代码如下:
4. 继续跟踪 .titles ,
我们可以看到title.innerHTML被取出放入到了 aData.content 变量中。这样一来,就完成了我们所绘步骤图中的第二步。
5. 希望就在前方,我们要继续看这个 aData.content是否会进入 innerHTML而输出到DOM中。
最后输出到页面中的是 TemplateBlogParser.parse 函数的返回值,而该函数的返回值来自以下代码:
因为我们是利用的Title, 其中aObj对应的是Title "类",我们查看Title的getContentHTML函数。
可以看到,我们的data.content被join拼接并返回,回溯来看,最终到达TemplateBlogParser.parse的返回值中。而该返回值,最终使用以下代码,进入innerHTML.
6. 因此,我们可以简单的构造利用代码如下:
效果见漏洞证明。
漏洞证明:
win7 + ie8
修复方案:
考虑过滤 listing 标签,不过可能会有点治标不治本。
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:15
确认时间:2014-02-21 15:01
厂商回复:
非常感谢您的报告,问题已着手处理,感谢大家对腾讯业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。
最新状态:
暂无
漏洞评价:
评论
-
2014-02-20 16:45 |
qwerty ( 普通白帽子 | Rank:116 漏洞数:16 | 已注销)
-
2014-02-20 16:46 |
MeirLin ( 实习白帽子 | Rank:96 漏洞数:30 | 号借人)
-
2014-02-20 16:48 |
浩天 ( 普通白帽子 | Rank:915 漏洞数:79 | 度假中...)
-
2014-02-20 16:48 |
adm1n ( 普通白帽子 | Rank:216 漏洞数:66 | 只是一个渣渣而已。。。)
-
2014-02-20 16:48 |
Focusstart ( 普通白帽子 | Rank:574 漏洞数:163 | 努力让某某某成为最幸福的女人!)
-
2014-02-20 16:49 |
蟋蟀哥哥 ( 普通白帽子 | Rank:363 漏洞数:57 | 巴蜀人士,80后宅男,自学成才,天朝教育失败...)
-
2014-02-20 16:51 |
blackexp ( 实习白帽子 | Rank:36 漏洞数:13 | 一点一点的渗透到...)
二老是不是把这些都写出exp,然后扫扫就出来洞啦。。。产量如此高
-
2014-02-20 17:09 |
lucky ( 普通白帽子 | Rank:409 漏洞数:84 | 三人行必有我师焉########################...)
-
2014-02-20 17:35 |
寂寞的瘦子 ( 普通白帽子 | Rank:242 漏洞数:53 | 一切语言转汇编理论)
-
2014-02-20 18:01 |
孤独雪狼 ( 普通白帽子 | Rank:710 漏洞数:145 | 七夕手机被偷,这坑爹的七夕啊 。。。。)
-
2014-02-20 18:53 |
vipons ( 普通白帽子 | Rank:284 漏洞数:65 | *^◎^*)
-
2014-02-20 19:07 |
gainover ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)
-
2014-02-20 19:22 |
鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)
-
2014-02-20 22:00 |
px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)
-
2014-02-21 08:46 |
蟋蟀哥哥 ( 普通白帽子 | Rank:363 漏洞数:57 | 巴蜀人士,80后宅男,自学成才,天朝教育失败...)
@gainover m的全拼是啥??忙学校的事,还是忙啥呢
-
2014-02-21 09:57 |
qwerty ( 普通白帽子 | Rank:116 漏洞数:16 | 已注销)
@蟋蟀哥哥 好像是Mutation-based Cross-Site-Scripting
-
2014-02-21 10:08 |
Ivan ( 实习白帽子 | Rank:81 漏洞数:9 | 小菜逼一个)
-
2014-02-21 10:58 |
蟋蟀哥哥 ( 普通白帽子 | Rank:363 漏洞数:57 | 巴蜀人士,80后宅男,自学成才,天朝教育失败...)
-
2014-02-21 11:10 |
Undoit ( 普通白帽子 | Rank:167 漏洞数:25 | 打酱油)
-
2014-02-21 14:19 |
HRay ( 普通白帽子 | Rank:196 漏洞数:28 | 018)
上网找关于mxss的pdf,其中一个还提到了http://html5sec.org/?xmlns#97,看来很多wsl都在关注这个站点
-
2014-02-21 14:22 |
HRay ( 普通白帽子 | Rank:196 漏洞数:28 | 018)
http://www.cse.chalmers.se/~d02pulse/thesis/innerhtml.pdf顺便把pdf地址发出来,大家感兴趣的可以看下
-
2014-02-21 18:28 |
从容 ( 普通白帽子 | Rank:221 漏洞数:75 | Enjoy Hacking Just Because It's Fun :) ...)
QQ空间存在很多的XSS,只不过很隐蔽~洞主多挖挖吧~
-
2014-02-21 20:36 |
夏殇 ( 路人 | Rank:30 漏洞数:21 | 不忘初心,方得始终。)
-
2014-02-21 20:40 |
gainover ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)
-
2014-02-21 20:44 |
从容 ( 普通白帽子 | Rank:221 漏洞数:75 | Enjoy Hacking Just Because It's Fun :) ...)
-
2014-04-07 12:46 |
影子契约 ( 路人 | Rank:0 漏洞数:1 | 额额。。。)
-
2014-09-20 19:49 |
laoyao ( 路人 | Rank:14 漏洞数:5 | ด้้้้้็็็็็้้้้้็็็็...)
大牛的 挖掘的洞虽然都看不懂 ,但感觉很厉害的样子 ,一直看下去......
-
2015-04-30 12:10 |
小天 ( 实习白帽子 | Rank:80 漏洞数:30 | 热爱学习,热爱web,热爱漏洞,热爱挖掘,)