我喜欢黑夜,喜欢网络安全,孤独寂寞的黑夜里,我只需要,一包烟,一台笔记本...
更多
首  页>>网络攻防>> WEB安全说一说新手在寻找XSS时所存在的一些误区 By gainover@pkav
说一说新手在寻找XSS时所存在的一些误区 By gainover@pkav
4975
1推荐
0评论

    来源:http://pkav.net/2012/11/282.html

    作者:gainover

     

    

        有段时间没写东西了, 最近看到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怎么这么难找到。原因有几点:     

    

  1.                 像评论框,个人资料这种,你所能想到的位置。稍微有一点安全意识的程序员也能想到,所以经常是被过滤掉的。              

            

        

  •                 你所填入的资料,并不总是以HTML标签的形式,输出到页面上。所以有时候并不是不能X,只是因为你填入的东西不对。              

            

    


    

        看不见有两个层面:     

    

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

    

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

    

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

    

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

    

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

    

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

    

        简单通俗点的说法是:  前者可以通过右键查看源代码,搜索到。  后者通过右键查看源代码是搜索不到的。     

    

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

    

        HTML标签又分为:   是在HTML标签之间: 

 内容在这里 

    还是在HTML属性之间: ”内容在这里”    还是在HTML事件之间:    Script/style标签:   根据输出自己去构造闭合,保证语法正确即可。         

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

    

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

            

        

  •                 查看此代码段,是否存在过滤问题。              

            

        

  •                  如果存在,制定绕过规则。              

            

    


    

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

    

  1.                 了解以上B)中,   每个点该过滤什么字符,   如果没过滤什么字符,该怎么去利用。              

            

        

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

            

        

  •                 测试服务器端的一些转换逻辑,比如有些服务器会先将"转换为”              

            

        

  •                 确定是否可绕过,不能绕过的尽早放弃              

            

    


    

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

    

        4. 其它:    

    

  1.                 XSS,代码里明明看到插入了 

    标记以彩色显示时,才说明是插入了,而以黑色显示时,实际上的代码是: ,其它标签同理。              

            

        

  •                 

            

    


    

        5. 总结;    

    

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

    

        http://zone.wooyun.org/content/1436http://zone.wooyun.org/content/1424http://zone.wooyun.org/content/1543http://zone.wooyun.org/content/1438http://zone.wooyun.org/content/1169    

    

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

    

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

    

        ps:这个ppt讲挖掘xss的,看了以后写的很好,对于学xss挖掘的同志有很好的帮组,强烈推荐    

     

已经有 ( 0 ) 位网友对此发表了自己的看法,你也评一评吧! 此文不错,我要推荐-->    推 荐
欢迎参与讨论,请在这里发表您的看法、交流您的观点@禁止各种脚本

  • 点击Top
  • 推荐Top
  • 评论Top
更 多>>
本站采用Java语言开发,Spring框架,欢迎朋友们提意见。重新对页面进行布局,修改了程序,方便开源使用,由于本人美工真的不行 ,很少用背景图片,页面基本都用背景色...
主题:无色无味 | 网站地图|
Copyright (c) 2012-2013 www.shack2.org All Rights Reserved. | 空ICP备111111111号 | 程序设计: shack2 Powered by SJBlog v1.0 联系QQ:1341413415