Install
openclaw skills install edgeiq-xss-scannerScans web apps for reflected and DOM-based XSS using 24+ payloads across 6 contexts, with crawl and concurrency support for authorized security audits.
openclaw skills install edgeiq-xss-scannerVersion: 1.2.0
Skill Name: xss-scanner
Category: Security / Offensive / Auditing
Author: EdgeIQ Labs
License: Defensive Use Only
OpenClaw Compatible: Yes — Python 3, pure stdlib, WSL + Windows + macOS
Professional-grade XSS vulnerability scanner for authorized security auditing. Scans web applications for reflected XSS, DOM-based XSS, stored/persistent XSS (via blind callback), and WAF-bypass variants. Designed for penetration testers, bug bounty researchers, and security teams with explicit written authorization.
⚠️ Legal Notice: Only scan targets you own or have explicit written permission to audit. Unauthorized scanning is illegal and strictly prohibited. This tool is for defensive security professionals.
| Feature | Lifetime ($39) | Optional Monthly ($7/mo) |
|---|---|---|
| All scanner features | ✅ | ✅ |
| Blind XSS detection | ✅ | ✅ |
| Screenshot evidence capture | ✅ | ✅ |
| HTML report export | ✅ | ✅ |
| Reflected params deep analysis | ✅ | ✅ |
| Scheduled recurring scans | ✅ | ✅ |
| Alert delivery (Discord/Telegram/Email) | ✅ | ✅ |
| Priority support | ✅ | ✅ |
| Core reflected XSS scan (40+ payloads) | ✅ | ✅ |
| Crawl mode + BFS depth | ✅ | ✅ |
| JSON report export | ✅ | ✅ |
| HTTP security header analysis | ✅ | ✅ |
| WAF detection + auto-bypass | ✅ | ✅ |
| Custom headers, cookies, auth | ✅ | ✅ |
| Proxy support | ✅ | ✅ |
| Rate limiting control | ✅ | ✅ |
--quiet mode + exit codes | ✅ | ✅ |
Lifetime License: $39 — your tool forever, all Pro features included permanently.
Optional Monthly: $7/mo — for those who prefer recurring billing (cancel anytime).
👉 Buy Lifetime — $39 👉 Subscribe Monthly — $7/mo 👉 Subscribe Monthly — $7/mo
| Feature | Free | Lifetime ($39) |
|---|---|---|
| Core reflected XSS scan (40+ payloads) | ✅ | ✅ |
| Crawl mode + BFS depth | ✅ | ✅ |
| JSON report export | ✅ | ✅ |
| HTTP security header analysis | ✅ | ✅ |
| WAF detection + auto-bypass | ✅ | ✅ |
| Custom headers, cookies, auth | ✅ | ✅ |
| Proxy support | ✅ | ✅ |
| Rate limiting control | ✅ | ✅ |
--quiet mode + exit codes | ✅ | ✅ |
Blind XSS detection (--blind-callback) | ❌ | ✅ |
Screenshot evidence capture (--screenshot-dir) | ❌ | ✅ |
HTML report export (--format html) | ❌ | ✅ |
| Reflected params deep analysis | ❌ | ✅ |
| Scheduled recurring scans | ❌ | ✅ |
| Alert delivery (Discord/Telegram/Email) | ❌ | ✅ |
| Priority support | ❌ | ✅ |
All Pro features are now included in the Lifetime License. The Lifetime purchase gives you permanent access to everything previously locked behind Pro/Bundle tiers.
| Feature | Free | Lifetime ($39) |
|---|---|---|
| Core reflected XSS scan | ✅ | ✅ |
| 40+ payloads (incl. WAF bypass) | ✅ | ✅ |
| 7 injection context modes | ✅ | ✅ |
| Crawl mode with BFS depth | ✅ | ✅ |
| JSON + HTML report export | ✅ | ✅ |
| HTTP security header analysis (CSP, XFO, HSTS…) | ✅ | ✅ |
| WAF detection + auto-bypass payload switching | ✅ | ✅ |
| Custom headers, cookies, auth | ✅ | ✅ |
| Proxy support (stealth scanning) | ✅ | ✅ |
| Rate limiting control | ✅ | ✅ |
| Blind XSS detection (callback mode) | ❌ | ✅ |
| Reflected params analysis | ❌ | ✅ |
| Screenshot evidence capture | ❌ | ✅ |
--quiet mode + exit codes (CI/CD) | ✅ | ✅ |
| Scheduled recurring scans | ❌ | ✅ |
| Alert delivery (Discord / Telegram / Email) | ❌ | ✅ |
| Priority support | ❌ | ✅ |
# Standalone usage
python3 /home/guy/.openclaw/workspace/apps/xss-scanner/scanner.py <target>
# As OpenClaw command (in any channel):
!xss https://example.com
!xss https://example.com --depth 3 --workers 20
python3 scanner.py https://example.com
python3 scanner.py https://example.com --depth 2 --max-urls 30
python3 scanner.py https://example.com --proxy http://127.0.0.1:8080 --quiet
python3 scanner.py https://example.com --auth admin:secret --cookies "session=abc123"
python3 scanner.py https://example.com --blind-callback https://your-callback.com/log
python3 scanner.py https://example.com --analyze-headers --format json --out report.json
python3 scanner.py https://example.com --format html --out xss-report.html
python3 scanner.py https://example.com --quiet --format json -o result.json
echo "Exit code: $?" # 0=safe, 1=vulns found, 2=error, 3=interrupted
| Argument | Description |
|---|---|
url | Target URL (auto-adds https:// if missing) |
| Flag | Type | Default | Description |
|---|---|---|---|
--depth | int | 2 | Crawl depth (BFS link discovery) |
--max-urls | int | 20 | Maximum URLs to scan before stopping |
--workers | int | 15 | Concurrent threads for payload testing |
--format | choice | discord | Output format: discord, json, html, simple |
--follow-external | flag | False | Follow links to external domains |
--quiet, -q | flag | False | Suppress progress output |
--out, -o | path | — | Write output to file |
| Flag | Type | Description |
|---|---|---|
--proxy | URL | HTTP/S proxy (e.g. http://127.0.0.1:8080 for Burp/ZAP) |
--user-agent | string | Custom User-Agent string |
--auth | user:pass | Basic HTTP authentication |
--cookies | string | Cookie string (name=value; name2=value2) |
--custom-header | HDR | Add custom header (Name: value) — repeatable |
--timeout | float | Request timeout in seconds (default: 15) |
--rate-limit | float | Minimum seconds between requests (anti-rate-limit) |
| Flag | Type | Description |
|---|---|---|
--blind-callback | URL | Blind XSS callback URL for stored XSS detection |
--analyze-headers | flag | Analyze HTTP security headers (CSP, X-Frame-Options, HSTS…) |
--reflected-only | flag | Map reflected params without sending payloads |
--screenshot-dir | path | Directory for evidence HTML files (default: /tmp/xss-screenshots) |
| Code | Meaning |
|---|---|
0 | Scan complete — no vulnerabilities found |
1 | Scan complete — vulnerabilities detected |
2 | Scan error — target unreachable or connection failed |
3 | Interrupted — SIGINT/SIGTERM received |
The scanner automatically detects the injection context of each reflection and assigns severity accordingly:
| Context | Triggered When | Severity | Example |
|---|---|---|---|
js_string | Payload inside <script> or JS string | Critical | <script>alert(1)</script> |
event_handler | Payload inside on* attribute | Critical | onerror=alert(1) |
html_attr | Payload inside HTML attribute | High | " onmouseover=alert(1) x=" |
dom | DOM mutation / innerHTML injection | High | DOM clobbering vectors |
html_body | Plain text reflection in HTML | Medium | <script>alert(1)</script> |
comment | Inside HTML comment <!-- --> | Medium | --><script>alert(1)</script> |
css | Inside <style> tag | Medium | Style-based injection |
url_param | URL-encoded param in URL | Low | ?q=<script>alert(1)</script> |
Automatically detects these WAFs and switches to bypass payloads:
Bypass payloads activated automatically when WAF block patterns are detected:
<ScRipT>, <IMG SRC=x ONERROR=...><script>\u0061lert(1)</script>//evil.com/x.jsWhen --analyze-headers is used, reports on:
| Header | What It Checks |
|---|---|
Content-Security-Policy | unsafe-inline / unsafe-eval present? |
X-Frame-Options | Clickjacking protection (DENY / SAMEORIGIN) |
X-Content-Type-Options | MIME-sniffing disabled (nosniff) |
Strict-Transport-Security | HTTPS enforcement |
Referrer-Policy | Referrer leakage |
X-XSS-Protection | Legacy XSS filter (often disabled intentionally) |
Permissions-Policy | Browser feature restrictions |
Rich embed with severity breakdown, grouped by critical/high/medium/low. Clean formatting for Discord channels.
Full structured report for CI/CD pipelines, includes:
Self-contained styled HTML file — dark theme, sortable vulnerability table, header findings, WAF info. Ready to share with clients or include in pentest deliverables.
One-line-per-finding format. Good for grep/parsing.
In any OpenClaw Discord channel:
!xss https://example.com
!xss https://example.com --depth 3 --max-urls 50 --workers 20
!xss https://example.com --follow-external --format json -o report.json
!xss https://example.com --proxy http://127.0.0.1:8080 --quiet
!xss https://example.com --blind-callback https://your-domain.com/log
!xss https://example.com --analyze-headers --format html -o report.html
Full-featured scanner for manual authorized auditing. Everything in this SKILL.md except the Pro-only items.
All features included in Lifetime purchase above.
All features now included in Lifetime purchase above.
| Tier | Link |
|---|---|
| $39 | $39 |
| Monthly ($7/mo) | $7/mo |
| $7/mo | $7/mo |
Contact: gpalmieri21@gmail.com
| Component | Detail |
|---|---|
| Language | Python 3 (pure stdlib — no external dependencies) |
| Concurrency | concurrent.futures.ThreadPoolExecutor for parallel payload testing |
| Crawl Strategy | BFS with configurable depth, URL dedup, external-link filtering |
| HTTP Client | Custom HTTPClient class with proxy, auth, cookie, custom-header support |
| WAF Detection | Pattern-matching on response body + headers against 15+ WAF signatures |
| Context Detection | Regex + HTML parser across 8 injection contexts |
| Payload Library | 40+ payloads across script injection, event handlers, attribute injection, URL injection, context breakers, mution/mull-byte bypass, Unicode, DOM clobbering |
| Supported OS | Linux/WSL, Windows, macOS |
| Exit Codes | Full automation support (0/1/2/3) |
This tool is for:
This tool must NOT be used:
edgeiqlabs.com — Security tools, OSINT utilities, and micro-SaaS products for developers and security professionals.