XSS常用测试语句及编码绕过
XSS常用测试语句及编码绕过
XSS常用测试语句
<scrtipt>alert(1)</script>
<img src=x onerror=alert(1)>
<svg onload=alent(1)>
<a href=javascript:alert(1)>
常见的XSS编码:JS编码、HTML实体编码、和URL编码
JS编码
三个八进制数字,如果不够个数,前面补0,例如“<”编码为“\074”
两个十六进制数字,如果不够个数,前面补0,例如“<”编码为“\x3c”
四个十六进制数字,如果不够个数,前面补0,例如“<”编码为“\u003c”
对于一些控制字符,使用特殊的C类型的转义风格(例如\n和\r)
HTML实体编码
命名实体:以&开头的,以分号结尾的,例如“<”的编码是“<”
字符编码:十进制、十六进制ASCII码或Unicode字符编码,样式为“&#数值;”,例如"<"可以编码为“<”和“<”。
URL编码
一个百分号和该字符的ASCII编码所对应的2位十六进制数字。
# | < | > | + | 空格 | & | ( | ) | / | . |
---|---|---|---|---|---|---|---|---|---|
%23 | %3c | %3e | %2b | %20 | %26 | %28 | %29 | %2f | %2e |