绕过XSS过滤规则

相信你们在作***测试的时候都有过这样的经历,明明一个XSS的漏洞,可是却有XSS过滤规则或者WAF保护致使咱们不能成功利用,好比咱们输入<scirpt>alert("hi")</script>,会被转换为<script>alert(>xss detected<)</script>,这样的话咱们的XSS就不生效了,下面就教你们几种简单的绕过XSS的方法:javascript

一、绕过 magic_quotes_gpcphp

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

好比:<script>alert("xss");</script>会转换为<script>alert(\"xss\");</script>,这样咱们的xss就不生效了。java

针对开启了magic_quotes_gpc的网站,咱们能够经过javascript中的String.fromCharCode方法来绕过,咱们能够把alert("XSS");转换为web

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

<script>String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 88, 83, 83, 34, 41, 59)</script> xss

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

如何转换ASCII码呢?工具

咱们能够使用 hackbar 来搞定,Firefox的扩展工具https://addons.mozilla.org/en-US/firefox/addon/hackbar/测试

最后使用<script>转换后的放到这里</script>包含便可。
二、HEX编码
咱们能够对咱们的语句进行hex编码来绕过XSS规则。
好比:<script>alert("xss");</script> 能够转换为:
%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/
三、改变大小写
在测试过程当中,咱们能够改变测试语句的大小写来绕过XSS规则
好比:<script>alert("xss");</script> 能够转换为:
<ScRipt>ALeRt("XSS");</sCRipT>
四、关闭标签
有时咱们须要关闭标签来使咱们的XSS生效,如:
"><script>alert("Hi");</script>
相关文章
相关标签/搜索