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

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

缺陷编号:wooyun-2013-020390

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

相关厂商:腾讯

漏洞作者: gainover

提交时间:2013-03-20 22:35

修复时间:2013-05-04 22:35

公开时间:2013-05-04 22:35

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

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

在这个系列的第一个漏洞时,由于2个缺陷点距离不远,当时就已经发现了这个问题,想着腾讯可能对第一个漏洞采用某些方式修复;如果是用 json.parse的方式修复,那么这第2个问题应该会依然存在,如我所料,于是。。。

详细说明:

1. 接着看这个系列的第一个漏洞(content_gridsblog.js)中那部分的代码。
腾讯为了修复这个漏洞,采用了更为安全的JSON.parse函数作为修复方案。这种修复是没有问题的。

1.jpg


其它有类似缺陷的网站可以参考腾讯的修复方案。
2. 但实际上,在这段代码下方的不远处,还存在着另外一处缺陷,如下图所示:

2.jpg


可以看到, oGridInfo为 JSON.parse解析出来的一个[Object]
而 oGridInfo.templateName 取出来后,没有经过任何过滤,就传入到了 innerHTML 中。
而从抓包的数据来看,json数据里的templateName 我们是可控的,那么这里就显然存在问题啦~
3. 修改日志数据包中的templateName,并发送。

{"g0":{"visible":1,"id":0,"content":{"mood":"","image":"","date":"","text":"1"},"type":1,"title":"?????????"},"g5":{"visible":1,"id":5,"content":{"mood":"","image":"","date":"","text":"1"},"type":1,"title":"2012?????????"},"g1":{"visible":1,"id":1,"content":{"mood":"","image":"","date":"","text":"1"},"type":1,"title":"???????"},"templateName":"<img src=1 onerror='alert(1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111)'>","g4":{"visible":1,"id":4,"content":{"mood":"","image":"","date":"2013-03-20&1","text":""},"type":0,"title":"???? 2013-3-20"},"g7":{"visible":1,"id":7,"content":{"mood":"","image":"","date":"","text":"1"},"type":1,"title":"??????????"},"version":"1.2","g2":{"visible":1,"id":2,"content":{"mood":"","image":"","date":"","text":"1"},"type":1,"title":"??????"},"bgItem":{"bgId":"130","bgURL":"/qzone/newblog/v5/flashassets/bg130.swf?bgver=1.0&max_age=31104000","gridcolor":"0xF06368","alpha":1,"align":"right","wordcolor":"0xFFFFFF"},"tempId":56,"g8":{"visible":1,"id":8,"content":{"mood":"","image":"","date":"","text":"1"},"type":1,"title":"???????????"},"g6":{"visible":1,"id":6,"content":{"mood":"","image":"","date":"","text":"1"},"type":1,"title":"????????????"},"g3":{"visible":1,"id":3,"content":{"mood":"","image":"","date":"","text":"1"},"type":1,"title":"2012?????????"}}


4. 用另外一个号,查看已经发表的日志。 成功弹出啦。

3.jpg

漏洞证明:

见详细说明,由于代码逻辑上,只有他人查看日志时,才会触发此段代码,故测试时,请以第三者身份查看包含缺陷代码的日志

修复方案:

oGridInfo.templateName取出后,HTMLencode一下。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2013-03-21 12:43

厂商回复:

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

最新状态:

暂无


漏洞评价:

评论

  1. 2013-03-20 22:40 | 冷静 ( 路人 | Rank:3 漏洞数:2 )

    2哥尿湿入神

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

    腾讯这情况是要拉动gdp么

  3. 2013-03-20 22:44 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1727 漏洞数:125 | 如果大海能够带走我的矮丑...)

    @xsser 漏洞求审核~

  4. 2013-03-20 22:49 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @xsser ?腾讯在何方?

  5. 2013-03-20 22:49 | Drizzle.Risk ( 普通白帽子 | Rank:255 漏洞数:19 | You have an error in your SQL syntax; ch...)

    求妹纸.....

  6. 2013-03-20 22:50 | Xhm1n9 ( 实习白帽子 | Rank:57 漏洞数:13 | bug)

    连载! tx高潮了。。。

  7. 2013-03-20 22:53 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:41 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    ....

  8. 2013-03-20 23:17 | lsh4ck ( 实习白帽子 | Rank:81 漏洞数:13 | 不是黑客!但是黑客手段都要会?)

    2哥开挂刷分了

  9. 2013-03-20 23:26 | rasca1 ( 实习白帽子 | Rank:53 漏洞数:16 | 菜鸟一只)

    求二哥和我搞基

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

    默默地再关注一次

  11. 2013-03-21 08:32 | Finger 认证白帽子 ( 普通白帽子 | Rank:777 漏洞数:95 | 最近有人冒充该账号行骗,任何自称Finger并...)

    鄙视开挂的

  12. 2013-03-21 08:43 | lucky ( 普通白帽子 | Rank:409 漏洞数:81 | 三人行必有我师焉########################...)

    又要一篇好的学习文章!二哥出品,必属精品!

  13. 2013-03-21 09:00 | 围剿 ( 路人 | Rank:17 漏洞数:5 | Evil decimal)

    二哥开挂了,又是个连载啊 ~~

  14. 2013-03-21 09:37 | Jannock 认证白帽子 ( 核心白帽子 | Rank:2278 漏洞数:202 | 关注技术与网络安全(招人中,有兴趣请私信...)

    我是来围观的。。

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

    就打个包一起发了,多次高潮围观的人受不了!

  16. 2013-03-21 10:13 | 心伤的瘦子 ( 普通白帽子 | Rank:147 漏洞数:21 | 严肃点~此号为虚拟小号,并不存在实体...)

    二哥你这是要跟我抢粉丝?

  17. 2013-03-21 10:16 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    @心伤的瘦子 瘦子好久没更新了额。

  18. 2013-03-21 10:39 | 冷静 ( 路人 | Rank:3 漏洞数:2 )

    @心伤的瘦子 再来个连续剧就能把他甩在后面更远

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

    @心伤的瘦子 期待瘦子的大作!

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

    @心伤的瘦子 期待瘦子的大作!

  21. 2013-04-22 13:14 | Demon ( 普通白帽子 | Rank:121 漏洞数:14 | You are my dream)

    我想知道最后修改content数据是用什么提交的?求软件名字

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

    @Demon charles web proxy

  23. 2013-04-22 16:28 | Demon ( 普通白帽子 | Rank:121 漏洞数:14 | You are my dream)

    @gainover 谢谢二哥啊~