说一说新手在寻找XSS时所存在的一些误区。

  • A+
所属分类:WooYun-Zone

有段时间没写东西了, 最近看到zone里出现了很多“XSS怎么绕过某某符号的帖子”,觉得很多新手在寻找XSS时走进了一些误区,比如:专门想着怎么去“绕过”。这里做个总结,希望对大家有所帮助。

1. 误区1: XSS,不是专门去“绕过”限制。

打个简单的比方,一个已经被层层把守的大门,面前荆棘无数,而你又单枪匹马的,怎么闯的进去? 这个时候你要意识到,走大门是不可能的。其实我们要突破的城防,有很多小门可以进去的,甚至不需要任何手段就可以直接走进去。我们为什么不走呢?

XSS是很好防御的,不就是过滤一下么,所以我们不要太多寄希望与程序员错误的过滤逻辑,而应该把希望寄托于程序员的“忘记过滤”上。

在实际测试过程中,这样的例子会有很多。下面是一个比较典型的例子。

腾讯微博:

正门: 正文内容。 你认为你能突破吗?程序员在这里是重兵把守,早就过滤的严严实实。想突破限制,几乎是不可能的任务。 如果大家意识到这点,就不会问“过滤了< , >” 怎么办啊!

小门: 其它参数。 比如微博发布音乐时的 musicLocation 等参数。

可以注意到,这里程序员就没有那么重视了,漏洞出了一次又一次。具体见:

A) http://www.wooyun.org/whitehats/心伤的胖子 的 腾讯微博系列

B) http://www.wooyun.org/whitehats/gainover 的  腾讯微博相关

2. 误区2: XSS,不仅仅存在于你所看得见的位置。

大部分新手,在寻找XSS时,都会在一些评论框去输入XSS代码,然后看页面有没有弹窗。当然不是说这个方法没有用,而是这种方法,几乎很难“碰”到一个XSS。所以很多新手会觉得XSS怎么这么难找到。原因有几点:A):像评论框,个人资料这种,你所能想到的位置。稍微有一点安全意识的程序员也能想到,所以经常是被过滤掉的。 B):你所填入的资料,并不总是以HTML标签的形式,输出到页面上。所以有时候并不是不能X,只是因为你填入的东西不对。

看不见有两个层面:

A) 输入看不见。

建议大家在提交请求的时候,使用抓包软件,然后对请求的参数逐个测试。

B)  输出看不见。

建议大家对返回的数据,也可以使用抓包软件抓取数据,然后对抓回的数据进行搜索,搜索你输入的数据,来定位看不见的输出。还有一种方式,在chrome中,可以搜索浏览器调试工具中的[resource]。

3. 误区3: XSS,绕过限制不是让你乱用字符去绕过,切忌盲目。

某人在看到代码是 <a href=”xxxx\u0022″> 的时候,问大家:“为什么\u0022”不行啊? 这种绕过是盲目的。

在测试初期,我们如果不愿意去看对方的代码逻辑,可以采用“盲目”的方式去测试(用各种特殊字符去试探),这样可以节省很多时间。但是,当我们已经能够确定,数据输出位于哪个点时,比如上面这个 xxxx ,我们已经知道是输出到了 href=”之间”  的时候。我们就不能盲目的去”绕过”,一定要有针对性。这个针对性主要是以下几点。

A) 输出点,是直接输出,还是经过了DOM。

  简单通俗点的说法是:

  前者可以通过右键查看源代码,搜索到。

  后者通过右键查看源代码是搜索不到的。

B) 直接输出点,是位于HTML标签里,还是位于Script脚本里,或者是Style里

  HTML标签又分为:

    是在HTML标签之间: <div> 内容在这里 </div>

    还是在HTML属性之间: <img alt=”内容在这里”>

    还是在HTML事件之间:  <img onload=”内容在这里”>

  Script/style标签:

    根据输出自己去构造闭合,保证语法正确即可。

C)  DOM输出点,这个需要一定的JS基础。

  C.1) 定位输出内容的JS代码段。

  C.2) 查看此代码段,是否存在过滤问题。

  C.3) 如果存在,制定绕过规则。

D) 输出点,采用的什么过滤规则

  D.1)了解以上B)中,

    每个点该过滤什么字符,

    如果没过滤什么字符,该怎么去利用。

  D.2)逐个测试法,看看目标输出点,到底过滤了哪些字符

  D.3)测试服务器端的一些转换逻辑,比如有些服务器会先将&quot;转换为”

  D.4)确定是否可绕过,不能绕过的尽早放弃

总之,首先要了解如何防御,你才能了解,如何绕过,不能盲目。其中,B+D的规则基本是死的,偶尔碰上些服务器端过滤逻辑有问题的,是可以绕过的,尤其是服务器端采用黑名单的方式时。C则较为灵活,所谓的“绕过”往往是针对这种。

4. 其它:

A) 代码里明明看到插入了 <script>,怎么不执行啊?

这种问题,zone里貌似有几个帖子了,这里强调下,打开调试工具看代码的时候,请注意颜色。 以chrome为例,只有<script>..</script>标记以彩色显示时,才说明是插入了,而以黑色显示时,实际上的代码是:&lt;script&gt;…. &lt;/script&gt; ,其它标签同理。

B) <xxx xxxx=”xxx”> 这个放进去怎么不行啊?

首先确定你这个是XSS代码,此外,一些新手会在网上找到一些旧的资料,而有些XSS代码是IE6时代的产物,或者是浏览器特异的代码,所以一定要注意代码来源,适用于什么浏览器。

5. 总结;

希望以后能够尽量少出现一些类似下面的帖子:

http://zone.wooyun.org/content/1436

http://zone.wooyun.org/content/1424

http://zone.wooyun.org/content/1543

http://zone.wooyun.org/content/1438

http://zone.wooyun.org/content/1169

阅读此文时,可参见我之前做的一个PPT:

http://vdisk.weibo.com/s/9Cvwn

  1. 1#

    xsser | 2012-11-09 15:39

    :)

  2. 2#

    笔墨 (自古处男多sb) | 2012-11-09 15:40

    好帖!

  3. 3#

    水滴 (.) | 2012-11-09 16:11

    x

  4. 4#

    an1k3r | 2012-11-09 16:36

    不错

  5. 5#

    Jack | 2012-11-09 17:35

    ppt能私发么,被删除了,或者取消分享了。

  6. 6#

    se55i0n (那些年,我们一起看的岛国动作片~) | 2012-11-09 18:16

    @gainover +1

  7. 7#

    w0lfram (穿梭在这个行尸走肉般的城市,我总是有点心肌梗塞。) | 2012-11-09 18:21

    @Jack 亲  你确定你有微博莫??  被删除 ?

  8. 8#

    0x0F (…………………………………………………………………………………………………………………………………………………………………………………………………………………………….) | 2012-11-09 18:26

    @Jack 百度一下你就知道。

  9. 9#

    风萧萧 | 2012-11-09 18:29

    先顶后看

  10. 10#

    小黑要低调 | 2012-11-09 18:40

    闪电的帖子

  11. 11#

    猪头子 | 2012-11-09 19:27

    该文件已被删除或取消分享

  12. 12#

    popok (我是你们的大爷)‮(宗祖的们你是我) | 2012-11-09 19:42

    碉堡了,1,2两点很认同,一套方便的测试工具组合可以事半功倍。
    LZ把你的测试工具插件什么的分享一下吧

  13. 13#

    Xhm1n9 | 2012-11-09 19:48

    不错

  14. 14#
    感谢(1)

    gainover | 2012-11-09 20:20

    @猪头子 @Jack 是不是因为你们没有微博帐号?此处也可下载:http://pkav.net/2012/07/28.html

  15. 15#

    Sunshine (0123456789) | 2012-11-09 20:45

    @gainover 你妹妹的,我想拜师都米有人收

  16. 16#

    Fate (NIXI Team 欢迎志同道合的朋友交流.) | 2012-11-09 20:56

    真不错的文章 想拜师的心都有了

  17. 17#

    一刀终情 ((注意看时间,没乱哦!) ‫(1314520)) | 2012-11-09 21:00

    必须要顶的~

  18. 18#

    一刀终情 ((注意看时间,没乱哦!) ‫(1314520)) | 2012-11-09 21:00

    @gainover 教程更新了,发帖通知一下啊~

  19. 19#

    期待爱 (这个家伙很精明 连条内裤也没有留下!!!) | 2012-11-09 22:05

    想拜师的心都有了

  20. 20#

    upload (Van Helsing) | 2012-11-09 23:00

    受益匪浅

  21. 21#

    insight-labs | 2012-11-09 23:12

    Yeah,baby!但是我更喜欢绕过富文本过滤的快感!

  22. 22#

    circus | 2012-11-10 01:18

    Nice

  23. 23#

    瘦蛟舞 | 2012-11-10 17:12

    我咧个擦擦擦~~~~大湿~~~~~

  24. 24#

    5inb4d | 2012-11-10 17:52

    这下涨姿势了…

  25. 25#

    情深 (ส็็็็็็็็็็็็็็็็็็็็็็็็็) | 2012-11-11 00:40

    楼主 真跨站师。

  26. 26#

    凤凰 (凤凰涅磐,浴火重生) | 2012-11-12 10:18

    感谢分享,蛮全的,适合入门。收藏了。

    ps:对dom类不懂,亚历山大。。。

  27. 27#

    cnrstar (Be My Personal Best!) | 2012-11-12 13:15

    大师说的对。

  28. 28#

    神倦懒言 | 2012-11-13 18:46

    碉堡了,功力深厚的帖子啊

  29. 29#

    rehd | 2012-11-22 22:21

    !膜拜打湿!

  30. 30#

    koohik (精通各种系统的关机操作!) | 2012-11-23 08:36

    好贴!+1

  31. 31#

    possible (everything is possible) | 2012-11-23 09:44

    新的 好好 以后就跟着大神学xss了 hh

  32. 32#
    感谢(1)

    Hello_C (不乱于心,不困于情。不畏将来,不念过往。如此,安好) | 2012-11-24 18:35

    收藏了,神一般的帖子

  33. 33#

    黄小昏 | 2012-11-24 22:00

    mark +1

  34. 34#

    黑匣子 (ﻭS11111ﻭ() | 2012-12-06 21:53

    @笔墨 是好贴,重点是分析,而不是盲目过滤

  35. 35#

    黑匣子 (ﻭS11111ﻭ() | 2012-12-06 21:56

    @笔墨 到哪都有你 ⊙﹏⊙b汗

  36. 36#

    笔墨 (自古处男多sb) | 2012-12-07 09:26

    @黑匣子 闲着没事儿就到处打酱油- -~

  37. 37#

    LaiX ([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+(!![]+[])[+[[+[]]]]+(!![]+[])[+[[!+[]+!+[]+!+[]]]]+(!![]+[])[+[[+!+[]]]]][([][(![]+[])[+[[+[]]]]+([][[]]+[])[+[[!+[]+!+[]+!+[]+!+[]+!+[]]]]+(![]+[])[+[[!+[]+!+[]]]]+) | 2013-08-27 22:43

    @笔墨 惊现

  38. 38#

    一只猿 (猴哥) | 2013-08-27 23:40

    突然发现我图样图森破啊

  39. 39#

    0×12 (帽子掉了|多逛,少说话。|小学生                                                                                                                                                                                                                                               ) | 2013-08-27 23:54

    长姿势了 +12580

  40. 40#

    Ivan (Null.) | 2013-08-28 00:43

    跨站师

  41. 41#

    兜兜 (~) | 2013-08-28 10:38

    ppt下载不了啊 大哥

  42. 42#

    Deep (迎接高中。。。) | 2013-09-08 13:33

    学到了

  43. 43#

    才情岁月 (再牛X的梦想,也抵不住傻X似的坚持!) | 2013-09-10 09:14

    深受教育!

  44. 44#

    Stranger (我注意你很久了……) | 2014-01-23 05:50

    好贴…

  45. 45#

    Ivan (Null.) | 2014-01-23 11:24

    ppt能再发下么

  46. 46#

    三只小潴 | 2014-01-23 14:50

    很久之前看过了。。。

  47. 47#

    包包 ((●˘◡˘●)) | 2014-01-24 09:26

    mark

  48. 48#

    noob (漏洞深不可测#&8238) | 2014-01-24 09:53

    涨姿势了

  49. 49#

    無情 | 2014-01-26 09:44

    mark…

  50. 50#

    abaddon (我就认识这几个字母因此取了这名字) | 2014-04-17 08:20

    对于第一天研究Xss的新人很有帮助 受教了

  51. 51#

    小夜 | 2014-04-21 22:24

    顶 哈哈哈

  52. 52#

    C4nf3ng | 2014-04-21 23:56

    mark

  53. 53#

    Xeyes (无个性,不签名.) | 2014-04-22 09:50

    mark

  54. 54#

    Homa | 2014-04-27 12:18

    “>_< ‘ / & \ 看啥,没见过跨站字符么 看到题主的资料就很有意思,文章很精典,谢谢。

  55. 55#

    饭粒重生 | 2014-04-28 23:42

    很有意思的回答 哈哈

  56. 56#

    Forever80s (~~~~~~~~) | 2014-05-15 10:44

    高人

  57. 57#

    Bloodwolf (little wolf) | 2014-05-21 18:04

    新手是扫描器,见框就XX。。。

  58. 58#

    Mosuan (人为了保护重要的人,会变得格外的坚强) | 2014-05-31 19:57

    昨晚碰到个<script>明明入库了,但是却执行不了,求解,查看源码是彩色的

  59. 59#

    whirlwind (我名字的意思是“旋风”啊,whirl(旋转)+wind(风),那么多人不认识。。。) | 2014-06-01 14:21

    @Sunshine PPT何处下载啊??

    跪求一份,[email protected]

    @Mujj @VIP

  60. 60#

    whirlwind (我名字的意思是“旋风”啊,whirl(旋转)+wind(风),那么多人不认识。。。) | 2014-06-01 14:22

  61. 61#

    深夜大冒险 (终于烤好了,) | 2014-06-15 13:19

    楼主解开了我多年心结。。话说PPT不见了好伤心

  62. 62#

    MeirLin (我需要AV(安慰)) | 2014-06-15 14:28

    同求PPT

  63. 63#

    gainover | 2014-06-16 16:06

    @whirlwind @MeirLin

    被什么“静网行动”把文件分享屏蔽了,新链接如下:

    http://vdisk.weibo.com/lc/kKnLQU8taSkUL0YPj  密码:L17S

  64. 64#

    MeirLin (我需要AV(安慰)) | 2014-06-16 17:27

    @gainover 谢~ 已下载

  65. 65#

    Know | 2014-06-28 00:08

    好帖子

  66. 66#

    随随意意 (233) | 2014-07-17 12:41

    大赞!!!

  67. 67#

    kill | 2014-08-27 22:40

    很好的帖子

  68. 68#

    小飞侠 | 2014-12-11 11:27

    很棒,收益颇多~

  69. 69#

    Homa | 2015-01-10 18:32

    ppt连接失效了

  70. 70#

    鬼见愁 | 2015-07-01 11:35

    回复我QQ我们一起交流xss插爆腾讯