相信大家在做***测试的时候都有过这样的经历,明明一个XSS的漏洞,但是却有XSS过滤规则或者WAF保护导致我们不能成功利用,比如我们输 入alert("hi"),会被转换 为,这样的话我们的XSS就不生效 了,下面就教大家几种简单的绕过XSS的方法:

1、绕过 magic_quotes_gpc

    magic_quotes_gpc=ON是php中的安全设置,开启后会把一些特殊字符进行轮换,比如'(单引号)转换为\',"(双引号)转换为\" ,\转换为\\


    比如:会转换为,这样我们的xss就不生效了。


    针对开启了magic_quotes_gpc的网站,我们可以通过javascript中的String.fromCharCode方法来绕过,我们可以把alert("XSS");转换为

    String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 88, 83, 83, 34, 41)那么我们的XSS语句就变成了

     

    String.fromCharCode()是javascript中的字符串方法,用来把ASCII转换为字符串。

    如何转换ASCII码呢?

    我们可以使用 hackbar 来搞定,Firefox的扩展工具https://addons.mozilla.org/en-US/firefox/addon/hackbar/

最后使用包含即可。

2、HEX编码

我们可以对我们的语句进行hex编码来绕过XSS规则。

比如: 可以转换为:

%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%78%73%73%22%29%3b%3c%2f%73%63%72%69%70%74%3e

在线工具:

http://textmechanic.com/ASCII-Hex-Unicode-Base64-Converter.html

http://www.asciitohex.com/

3、改变大小写

在测试过程中,我们可以改变测试语句的大小写来绕过XSS规则

比如: 可以转换为:

4、关闭标签

有时我们需要关闭标签来使我们的XSS生效,如:

">

参考地址:

http://www.breakthesecurity.com/2011/12/bypassing-xss-filters-advanced-xss.html

http://www.exploit-db.com/papers/15446/