wapiti

Scanner de vulnérabilités d'applications web en boîte noire. Parcourt les applications web et fuzz les endpoints découverts pour XSS, SQLi, XXE, SSRF, path traversal, et plus. Black-box web application vulnerability scanner. Crawls web apps and fuzzes discovered endpoints for XSS, SQLi, XXE, SSRF, path traversal, and more.

↗ https://wapiti-scanner.github.io/

Overview

wapiti is an open-source black-box web vulnerability scanner. It first crawls the target to build a map of pages and parameters, then fuzzes each parameter for common vulnerabilities: SQL injection, XSS, file disclosure, XXE, SSRF, CSRF, open redirects, and more. No server-side access required.

Basic Usage

Basic scan

wapiti -u https://example.com/

Scan with specific depth

wapiti -u https://example.com/ --depth 3

Scan only specific URL (no crawl)

wapiti -u https://example.com/search?q=test --scope page

List available modules

wapiti --list-modules

Run specific module only

wapiti -u https://example.com/ -m xss,sql

Output HTML report

wapiti -u https://example.com/ -f html -o report.html

Authentication

HTTP Basic Auth

wapiti -u https://example.com/ --auth-user admin --auth-password secret

Login form authentication

wapiti -u https://example.com/ \
  --form-user admin \
  --form-password secret \
  --form-url https://example.com/login

With cookies

wapiti -u https://example.com/ --cookie "session=abc123"

With headers

wapiti -u https://example.com/ -H "Authorization: Bearer TOKEN"

Scan Scopes

page — only the specified URL (no crawl)

wapiti -u https://example.com/vuln.php?id=1 --scope page

folder — only URLs under the specified folder

wapiti -u https://example.com/app/ --scope folder

domain — full domain crawl

wapiti -u https://example.com/ --scope domain

url — specified URL only (no params)

wapiti -u https://example.com/ --scope url

Output Formats

HTML report (default)

wapiti -u https://example.com/ -f html -o report.html

JSON report (for automation)

wapiti -u https://example.com/ -f json -o report.json

XML report

wapiti -u https://example.com/ -f xml -o report.xml

Verbose output

wapiti -u https://example.com/ -v 2

Available Modules

sql         SQL injection
xss         Cross-site scripting
xxe         XML external entity injection
ssrf        Server-side request forgery
file        File disclosure / path traversal
redirect    Open redirect
shellshock  Shellshock (CGI)
htaccess    .htaccess misconfiguration
backup      Backup file detection
csp         Content Security Policy
csrf        CSRF vulnerabilities
cms         CMS detection
wapp        Wappalyzer (technology detection)

Tips

  • Always set --scope folder or --scope domain rather than page for broader coverage
  • Use --max-parameters 100 to limit parameter combinations and speed up the scan
  • Combine with manual testing — automated scanners miss business logic flaws
  • JSON output integrates well with vulnerability management platforms
Help / Man page
wapiti -u URL [options]

-u URL              Target URL
--scope SCOPE       page|folder|domain|url
--depth N           Crawl depth (default: 40)
-m MODULES          Comma-separated list of modules
--list-modules      Show available modules
-f FORMAT           Report format: html, json, xml, txt
-o FILE             Output file
--auth-user U       HTTP auth username
--auth-password P   HTTP auth password
--cookie C          Cookie string
-H HEADER           Custom header
-p PROXY            Proxy URL
-t TIMEOUT          Timeout per request
--max-parameters N  Max parameter combinations
-v LEVEL            Verbosity 0-2

Vue d’ensemble

wapiti est un scanner de vulnérabilités web en boîte noire, open-source. Il parcourt d’abord la cible pour construire une carte des pages et des paramètres, puis fuzz chaque paramètre à la recherche de vulnérabilités courantes : injection SQL, XSS, divulgation de fichiers, XXE, SSRF, CSRF, redirections ouvertes, et plus. Aucun accès côté serveur n’est requis.

Utilisation de base

# Scan basique
wapiti -u https://example.com/

# Scan avec une profondeur spécifique
wapiti -u https://example.com/ --depth 3

# Scanner uniquement une URL spécifique (pas de crawl)
wapiti -u https://example.com/search?q=test --scope page

# Lister les modules disponibles
wapiti --list-modules

# Lancer un module spécifique uniquement
wapiti -u https://example.com/ -m xss,sql

# Générer un rapport HTML
wapiti -u https://example.com/ -f html -o report.html

Authentification

# Authentification HTTP Basic
wapiti -u https://example.com/ --auth-user admin --auth-password secret

# Authentification par formulaire de connexion
wapiti -u https://example.com/ \
  --form-user admin \
  --form-password secret \
  --form-url https://example.com/login

# Avec des cookies
wapiti -u https://example.com/ --cookie "session=abc123"

# Avec des en-têtes
wapiti -u https://example.com/ -H "Authorization: Bearer TOKEN"

Portées de scan

# page   : uniquement l'URL spécifiée (pas de crawl)
wapiti -u https://example.com/vuln.php?id=1 --scope page

# folder : uniquement les URL sous le dossier spécifié
wapiti -u https://example.com/app/ --scope folder

# domain : crawl complet du domaine
wapiti -u https://example.com/ --scope domain

# url    : URL spécifiée uniquement (sans paramètres)
wapiti -u https://example.com/ --scope url

Formats de sortie

# Rapport HTML (par défaut)
wapiti -u https://example.com/ -f html -o report.html

# Rapport JSON (pour l'automatisation)
wapiti -u https://example.com/ -f json -o report.json

# Rapport XML
wapiti -u https://example.com/ -f xml -o report.xml

# Sortie verbeuse
wapiti -u https://example.com/ -v 2

Modules disponibles

sql         Injection SQL
xss         Cross-site scripting
xxe         Injection d'entité externe XML
ssrf        Server-side request forgery
file        Divulgation de fichiers / path traversal
redirect    Redirection ouverte
shellshock  Shellshock (CGI)
htaccess    Mauvaise configuration .htaccess
backup      Détection de fichiers de sauvegarde
csp         Content Security Policy
csrf        Vulnérabilités CSRF
cms         Détection de CMS
wapp        Wappalyzer (détection de technologie)

Conseils

  • Toujours définir --scope folder ou --scope domain plutôt que page pour une couverture plus large
  • Utiliser --max-parameters 100 pour limiter les combinaisons de paramètres et accélérer le scan
  • Combiner avec des tests manuels : les scanners automatisés ratent les failles de logique métier
  • La sortie JSON s’intègre bien avec les plateformes de gestion des vulnérabilités
Aide / Page de manuel
wapiti -u URL [options]

-u URL              Target URL
--scope SCOPE       page|folder|domain|url
--depth N           Crawl depth (default: 40)
-m MODULES          Comma-separated list of modules
--list-modules      Show available modules
-f FORMAT           Report format: html, json, xml, txt
-o FILE             Output file
--auth-user U       HTTP auth username
--auth-password P   HTTP auth password
--cookie C          Cookie string
-H HEADER           Custom header
-p PROXY            Proxy URL
-t TIMEOUT          Timeout per request
--max-parameters N  Max parameter combinations
-v LEVEL            Verbosity 0-2