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

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

缺陷编号:wooyun-2013-020303

漏洞标题:QQ空间某功能缺陷导致日志存储型XSS - 5

相关厂商:腾讯

漏洞作者: gainover

提交时间:2013-03-19 14:46

修复时间:2013-05-03 14:46

公开时间:2013-05-03 14:46

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

危害等级:高

自评Rank:12

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-03-19: 细节已通知厂商并且等待厂商处理中
2013-03-19: 厂商已经确认,细节仅向厂商公开
2013-03-29: 细节向核心白帽子及相关领域专家公开
2013-04-08: 细节向普通白帽子公开
2013-04-18: 细节向实习白帽子公开
2013-05-03: 细节向公众公开

简要描述:

日志的功能都快被测光了。。。只好把目光放在了一个不是很可能出XSS的地方,还是有,有木有!

详细说明:

1. 发布一个日志,插入一张图片,保存日志。当鼠标移动到图片上时,可以看到下面的东东。

1.jpg


2. 查看对应部分的源码,可以看到 转发部分的代码里,有这个图片的URL。

2.jpg


3. 这里可以猜测到,这部分代码的实现,大概是将图片的src取出来,然后通过字符串连接到代码里。
如果图片的地址里带有 " ,并且没有被过滤的话,是不是就可以导致XSS了呢?
4. 我们来试试。
日志,HTML模式,写入以下代码。
<div style="text-align:center"><img src="http://xsst.sinaapp.com/img.jpg#&quot;&gt;&lt;img style=display:none src=1 onerror=&quot;alert(1)//" alt="图片" style="width:466px;height:700px"></div>
5. 没弹出,查看DOM代码,可以看到,腾讯对外部图片做了一定的措施。

3.jpg


6. 要绕过这个限制,我们到相册里自己上传以下,得到一个腾讯站内地址试试。
<div style="text-align:center"><img src="http://b254.photo.store.qq.com/psb?/01d1295e-6c2f-4efd-825e-e15c2a77c787/mPEZeaUmy4PfIqxb9UclFShCdxmBJup1fOa6uKTgL80!/b/dJyTa5cOCQAA&bo=0gG8AgAAAAABAEo!#&quot;&gt;&lt;img style=display:none src=1 onerror=&quot;alert(1)//" alt="图片" style="width:466px;height:700px"></div>
7. 再次查看日志,当鼠标移动到【日志内的美女图片上时】,可以看到,弹出了1。

4.jpg


8. 通过DOM代码附近的 InfoManager.twitterImage ,我们可以定位到 http://ctc.qzs.qq.com/qzone/app/blog/v6/script/blog_content.js

..
tip_str += (['<a id="qzblog_twitter_img_btn" class="forward" href="javascript:void(0);" onclick="InfoManager.twitterImage(\'{0}\');return false;"><i class="icon_forward"></i>转发</a>']).join('');
..
oTip.innerHTML = QZBlog.Util.formatMsg(tip_str, [imgObj.src]);
..
(In http://ctc.qzs.qq.com/qzone/newblog/v5/script/common.js)
QZBlog.Util.formatMsg = (function(msg, values, filter) {
var pattern = /\{([\w-]+)?\}/g;
return function(msg, values, filter) {
return msg.replace(pattern,
function(match, key) {
return filter ? filter(values[key], key) : values[key];
});
}
} ());


进一步可以看出,图片的src取出后,经过formatMsg函数,进入tip_str最终进入oTip.innerHTML
9. 最后补充下一个小细节,在本地XSS中,图片地址后面,我们用#,而没有用 ?,这是为什么呢?
因为在chrome下,xxx.src取出图片地址时,会对地址进行编码,
如果用 xxx.jpg?"><img 就会变成 xxx.jpg?%22%3E%3cimg,如下图。

5.jpg


而用#号则不会被编码。 这也是决定是否可以利用成功的一个小技巧,故在此说明一下。

漏洞证明:

1. IE和chrome下均可,
2. 当用户进入日志后,鼠标移动到日志中插入的图片上时,即会触发XSS。
3. 虽然这是一个 onmouseover xss,但是从用户查看日志的习惯上来说,
当图片SIZE非常大,图片内容有吸引力,以及用户一些移动鼠标的误操作, 会使得该XSS的触发成功率会非常高,和自动触发差距不大。

6.jpg

修复方案:

缺陷文件及代码位置已给出,
取出 imgObj.src 进行 encode一次。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2013-03-19 15:13

厂商回复:

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

最新状态:

暂无


漏洞评价:

评论

  1. 2013-03-19 14:48 | 风萧萧 认证白帽子 ( 核心白帽子 | Rank:1020 漏洞数:70 | 人这一辈子总要动真格的爱上什么人)

    沙花

  2. 2013-03-19 14:54 | lucky ( 普通白帽子 | Rank:409 漏洞数:81 | 三人行必有我师焉########################...)

    不愧是传说中的二哥!

  3. 2013-03-19 14:54 | zzR 认证白帽子 ( 核心白帽子 | Rank:1382 漏洞数:111 | 收wb 1:5 无限量收 [平台担保])

    不多说,多说了全是泪

  4. 2013-03-19 14:54 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:17 | 当我又回首一切,这个世界会好吗?)

    永远的二哥

  5. 2013-03-19 15:04 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @xsser 鼻血三升,你还能来回复,不容易不容易~~

  6. 2013-03-19 15:05 | se55i0n ( 普通白帽子 | Rank:1567 漏洞数:172 )

    二师兄,大师兄去tsrc刷礼物了?

  7. 2013-03-19 15:07 | shine 认证白帽子 ( 普通白帽子 | Rank:831 漏洞数:76 | coder)

    发个标题为“QQ空间日志存储型XSS”打包!再霸气点!

  8. 2013-03-20 08:35 | 围剿 ( 路人 | Rank:17 漏洞数:5 | Evil decimal)

    二哥威武

  9. 2013-04-18 21:46 | lucky ( 普通白帽子 | Rank:409 漏洞数:81 | 三人行必有我师焉########################...)

    学习了!二哥大作!

  10. 2013-04-19 00:26 | none ( 实习白帽子 | Rank:40 漏洞数:5 | 十次十次啊 hack it then know more~)

    这简直是深入研究啊

  11. 2013-04-19 19:21 | rasca1 ( 实习白帽子 | Rank:53 漏洞数:16 | 菜鸟一只)

    二哥是不是经常对着这相片上的妹子撸?

  12. 2013-05-04 04:08 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:170 | 力不从心)

    美女的胸可以啊。@rasca1 二哥女人很多的,图片上的估计实战过

  13. 2013-06-20 15:35 | 小川 认证白帽子 ( 核心白帽子 | Rank:1344 漏洞数:208 | 一个致力要将乌云变成搞笑论坛的男人)

    关二爷,你的弹窗挡着重点了

  14. 2014-11-05 01:35 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    算个dom额