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

缺陷编号: WooYun-2012-16750

漏洞标题: [腾讯实例教程] 那些年我们一起学XSS - 19. 存储型XSS入门 [什么都没过滤的情况]

相关厂商: 腾讯

漏洞作者: 心伤的瘦子

提交时间: 2012-12-31 19:32

公开时间: 2013-02-14 19:33

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

危害等级: 高

自评Rank: 15

漏洞状态: 厂商已经确认

Tags标签: 存储型xss

2人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

存储型和反射型相比,只是多了输入存储、输出取出的过程。简单点说:

反射型是:输入--输出;
存储型是:输入--进入数据库*--取出数据库--输出。

这样一来,大家应该注意到以下差别:

反射型是:绝大部分情况下,输入在哪里,输出就在哪里。
存储型是:输入在A处进入数据库, 而输出则可能出现在其它任何用到数据的地方。

反射型是:输入大部分位于地址栏或来自DOM的某些属性,也会偶尔有数据在请求中(POST类型)
存储型是:输入大部分来自POST/GET请求,常见于一些保存操作中。

因而我们找存储型的时候,从一个地方输入数据,需要检测很多输出的点,从而可能会在很多点发现存储型XSS。

至于如何根据输出来构建存储型XSS的代码,和反射型没有任何区别,都是看输出的上下文来进行。

从程序员过滤代码的角度来讲,我们给之后的教程走向分个类:

1. 数据需要过滤,但是未过滤。导致XSS。

比如:昵称、个人资料。

2. 业务需求使得数据只能部分过滤,但过滤规则不完善,被绕过后导致XSS。

比如:日志、邮件及其它富文本应用。

本节先看一个最基本的情况,该过滤,但是什么都没过滤的情况。

-------------------------------------------

(数据库:不一定是像mysql那样的数据库,只要是能存储数据的都算。)

详细说明:

1. 找存储型的时候,需要有一颗多疑的心,一双善于发现的眼睛。我们来看看实例!



2. 某一天,某一群,与某一妹子有以下对话。



picture\4_1.jpg





3. 过了一会,就来了这么一条消息,原来是手机QQ录了发上来的。



picture\7_2.jpg





4. 这个时候,我们就会想,这个发上来的页面会不会有XSS呢?



5. 我们来看看页面的结构。



picture\10_4.jpg





6. 很多新手在找XSS的时候,都是拿着<script>alert(1)</script>或者其它到处测试,很盲目不是吗?



一定要记住本节最开头的话,存储型XSS,输出的位置不一定出现在输入的位置。



7. 因而我们有时候需要逆向的思维,来寻找存储型XSS。 大概思路如下:



7.1 先找到输出点,然后猜测此处输出是否会被过滤。



7.2 如果觉得可能没过滤,我们再找到这个输出是在哪里输入的。



7.3 接着开始测试输入,看输出的效果。



7.4 如果没过滤,那么你就成功了,否则你可以放弃掉它。



8. 拿本例来说明以上过程,



8.1 我们猜测昵称这个输出没过滤。



8.2 找到输入点,这个输入点,就是修改QQ昵称。



8.3 开始测试



通过WEBQQ修改昵称如下:(方法见: WooYun: PKAV腾讯专场 - 3. 腾讯QQ客户端某处功能页面存储型XSS )



使用charles web proxy 拦截WEBQQ数据包,修改并提交。



picture\13_9.jpg





提交成功后:



picture\16_6.jpg





8.4 我们拿小号进入一个群,发布一条手机QQ的语音。看输出效果,没过滤,成功了吧~~



picture\19_3.jpg





picture\22_5.jpg











漏洞证明:

拿xsser.me在某群的测试效果!



picture\25_7.jpg





登录他人帐号:



picture\28_8.jpg

修复方案:

昵称处输出过滤。

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2013-01-04 15:30

厂商回复:

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

最新状态:

暂无


漏洞评价:

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

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

评论

  1. 2012-12-31 19:37 | txcbg ( 普通白帽子 | Rank:294 漏洞数:39 | 说点什么呢?)
    0

    沙发

  2. 2012-12-31 19:52 | 无敌L.t.H ( 实习白帽子 | Rank:21 漏洞数:4 | Learning to hacking.:‮门安天京北爱我)
    0

    谁发起一个《中国好漏洞》

  3. 2012-12-31 20:33 | redrain有节操 ( 实习白帽子 | Rank:38 漏洞数:7 | 我只想看看个人简介可以多长。。。我只想看...)
    0

    广告位出租

  4. 2012-12-31 20:58 | xsser (核心白帽子 | Rank:249 漏洞数:17 | Live free or Die!)
    0

    毫不留情的关注

  5. 2012-12-31 20:58 | xsser (核心白帽子 | Rank:249 漏洞数:17 | Live free or Die!)
    0

    @无敌L.t.H +1 乌云不是有么

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

    前排

  7. 2012-12-31 23:16 | 大连万达集团(乌云厂商)
    0

    借地儿说话:祝各位新年快乐!

  8. 2012-12-31 23:38 | Blackeagle ( 实习白帽子 | Rank:24 漏洞数:4 | null)
    0

    @大连万达集团 好逗~

  9. 2012-12-31 23:46 | 心伤的瘦子 ( 普通白帽子 | Rank:147 漏洞数:21 | 嘿,我崇拜你们来了)
    0

    @大连万达集团 新年快乐~

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

    。。。怎么腾讯总是这一句。。

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

    。。。登的我空间、、、

  12. 2013-01-24 15:40 | xsser (核心白帽子 | Rank:249 漏洞数:17 | Live free or Die!)
    0

    @px1624 ..........

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

    @xsser 。。。头像都么有抹掉、、擦