Modern XSS vulnerability scanner for real-world web applications.
9
stars
3
commits
Python
primary language
Aug 21, 2026
updated
Next-generation XSS detection engine for modern web applications.
Built for real-world security testing — not just payload fuzzing.
[!WARNING] Authorized use only. Test only systems you own or have explicit written permission to test — an in-scope bug-bounty program or a signed engagement. Unauthorized scanning is illegal in most jurisdictions, and you are responsible for how you use this tool.
Most scanners stop at reflections — "your input came back in the page." XSS Grenade goes further and confirms real, exploitable vulnerabilities in a real browser.
[!NOTE] New to XSS? Cross-Site Scripting is when an app renders attacker-controlled input as active code in a victim's browser. A "reflection" only means your input appeared in the response — it isn't a bug until it actually executes. XSS Grenade does that last, hard step for you: it loads the page in a real headless Chromium and checks whether the payload fires.
| Context-aware injection | Detects where a parameter lands and fires only the payloads that fit that context — including multiple contexts for the same parameter. |
| Real-browser verification | Candidates are re-loaded in headless Chromium (Playwright). Only findings that actually execute survive. |
| Static JS taint analysis | Parses JavaScript to an AST and traces untrusted sources (location.*, document.referrer, window.name, postMessage) into dangerous sinks (innerHTML, eval, document.write, framework sinks). |
| Modern vulnerability classes | DOM XSS · mutation XSS (mXSS) · prototype pollution → XSS · DOM clobbering · Trusted Types misconfig · SSR hydration issues. |
| Bug-bounty vectors | postMessage abuse · JSONP callback injection · dangling markup (scriptless, CSP-resistant) · SVG/XML content-type reflection. |
| Known-CVE library detection | Fingerprints React, Vue, Angular, Next.js, jQuery, lodash, DOMPurify… and flags versions with known XSS/RCE CVEs. |
A live attack-surface graph, real-time severity-ranked findings, and browser-verified results — all from a single PyQt5 desktop app.
git clone https://github.com/tX-c0re/xss-grenade.git
cd xss-grenade
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python -m playwright install chromium # for headless verification
python xss_grenade_gui.py
[!TIP] No login? No problem — but ~80% of interesting XSS hides behind authentication. Paste your session cookies in SETTINGS → Authentication to scan admin panels, profiles and dashboards. Cookies stay in memory only — never written to reports or logs.
✔ Findings are verified in a real browser • ✔ Output is exploitable vulnerabilities, not noise.
Enable “Smart Payloads” for a quick, high-signal first pass:
Fully modular — enable only what you need.
| Category | Capability |
|---|---|
| Crawl | SPA-aware endpoint & parameter discovery (sitemap, forms, XHR, hash routes) |
| Reflected XSS | Context-aware payload injection + breakout synthesis |
| DOM XSS | Runtime (headless) and static JS taint analysis |
| Stored XSS | Multi-canary round-trip detection |
| Prototype Pollution | Client-side sources → known gadget chains → XSS |
| CSP Bypass | Misconfig detection + JSONP / unsafe-inline / nonce-reuse bypasses |
| postMessage | Weak or absent origin validation → sink |
| JSONP | Callback-parameter injection |
| SVG / XML | Content-type–driven reflection |
| WebSocket | onmessage handlers with DOM sinks |
| Headers / CORS | Header reflection + CORS misconfiguration |
| Library CVEs | Vulnerable front-end library / framework versions |
One-click export, three formats:
✔ Deduplicated • ✔ Severity-ranked • ✔ Safe to open (payloads escaped in the report)
xss_grenade.py # Core scan engine (CLI + orchestration)
xss_grenade_gui.py # PyQt5 desktop GUI
context_engine.py # Reflection-context detection
_static_js_analyzer.py # JavaScript source → sink taint analysis
_dom_v6.py # DOM XSS (headless taint)
_mutation_xss.py # Mutation XSS (mXSS)
_proto_pollution_analyzer.py # Prototype pollution → gadget chains
_dom_clobbering.py # DOM clobbering
_trusted_types_analyzer.py # Trusted Types / CSP audit
_headless_verifier.py # Real-browser confirmation (Playwright)
_html_report.py # Self-contained HTML report
Pull requests welcome. To keep the project sharp and safe:
GNU GPLv3 — free and open source. If you modify and distribute it, you must keep it open. See LICENSE.
For authorized security testing only. You are solely responsible for how you use this tool; unauthorized use may be illegal.
TX-C0RE Security Research · github.com/tX-c0re
3 commits
Python
98.2%
JavaScript
1.6%
Modern XSS vulnerability scanner for real-world web applications.
9
stars
3
commits
Python
primary language
Aug 21, 2026
updated
Next-generation XSS detection engine for modern web applications.
Built for real-world security testing — not just payload fuzzing.
[!WARNING] Authorized use only. Test only systems you own or have explicit written permission to test — an in-scope bug-bounty program or a signed engagement. Unauthorized scanning is illegal in most jurisdictions, and you are responsible for how you use this tool.
Most scanners stop at reflections — "your input came back in the page." XSS Grenade goes further and confirms real, exploitable vulnerabilities in a real browser.
[!NOTE] New to XSS? Cross-Site Scripting is when an app renders attacker-controlled input as active code in a victim's browser. A "reflection" only means your input appeared in the response — it isn't a bug until it actually executes. XSS Grenade does that last, hard step for you: it loads the page in a real headless Chromium and checks whether the payload fires.
| Context-aware injection | Detects where a parameter lands and fires only the payloads that fit that context — including multiple contexts for the same parameter. |
| Real-browser verification | Candidates are re-loaded in headless Chromium (Playwright). Only findings that actually execute survive. |
| Static JS taint analysis | Parses JavaScript to an AST and traces untrusted sources (location.*, document.referrer, window.name, postMessage) into dangerous sinks (innerHTML, eval, document.write, framework sinks). |
| Modern vulnerability classes | DOM XSS · mutation XSS (mXSS) · prototype pollution → XSS · DOM clobbering · Trusted Types misconfig · SSR hydration issues. |
| Bug-bounty vectors | postMessage abuse · JSONP callback injection · dangling markup (scriptless, CSP-resistant) · SVG/XML content-type reflection. |
| Known-CVE library detection | Fingerprints React, Vue, Angular, Next.js, jQuery, lodash, DOMPurify… and flags versions with known XSS/RCE CVEs. |
A live attack-surface graph, real-time severity-ranked findings, and browser-verified results — all from a single PyQt5 desktop app.
git clone https://github.com/tX-c0re/xss-grenade.git
cd xss-grenade
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python -m playwright install chromium # for headless verification
python xss_grenade_gui.py
[!TIP] No login? No problem — but ~80% of interesting XSS hides behind authentication. Paste your session cookies in SETTINGS → Authentication to scan admin panels, profiles and dashboards. Cookies stay in memory only — never written to reports or logs.
✔ Findings are verified in a real browser • ✔ Output is exploitable vulnerabilities, not noise.
Enable “Smart Payloads” for a quick, high-signal first pass:
Fully modular — enable only what you need.
| Category | Capability |
|---|---|
| Crawl | SPA-aware endpoint & parameter discovery (sitemap, forms, XHR, hash routes) |
| Reflected XSS | Context-aware payload injection + breakout synthesis |
| DOM XSS | Runtime (headless) and static JS taint analysis |
| Stored XSS | Multi-canary round-trip detection |
| Prototype Pollution | Client-side sources → known gadget chains → XSS |
| CSP Bypass | Misconfig detection + JSONP / unsafe-inline / nonce-reuse bypasses |
| postMessage | Weak or absent origin validation → sink |
| JSONP | Callback-parameter injection |
| SVG / XML | Content-type–driven reflection |
| WebSocket | onmessage handlers with DOM sinks |
| Headers / CORS | Header reflection + CORS misconfiguration |
| Library CVEs | Vulnerable front-end library / framework versions |
One-click export, three formats:
✔ Deduplicated • ✔ Severity-ranked • ✔ Safe to open (payloads escaped in the report)
xss_grenade.py # Core scan engine (CLI + orchestration)
xss_grenade_gui.py # PyQt5 desktop GUI
context_engine.py # Reflection-context detection
_static_js_analyzer.py # JavaScript source → sink taint analysis
_dom_v6.py # DOM XSS (headless taint)
_mutation_xss.py # Mutation XSS (mXSS)
_proto_pollution_analyzer.py # Prototype pollution → gadget chains
_dom_clobbering.py # DOM clobbering
_trusted_types_analyzer.py # Trusted Types / CSP audit
_headless_verifier.py # Real-browser confirmation (Playwright)
_html_report.py # Self-contained HTML report
Pull requests welcome. To keep the project sharp and safe:
GNU GPLv3 — free and open source. If you modify and distribute it, you must keep it open. See LICENSE.
For authorized security testing only. You are solely responsible for how you use this tool; unauthorized use may be illegal.
TX-C0RE Security Research · github.com/tX-c0re
3 commits
Python
98.2%
JavaScript
1.6%