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 folderor--scope domainrather than page for broader coverage - Use
--max-parameters 100to 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 folderou--scope domainplutôt que page pour une couverture plus large - Utiliser
--max-parameters 100pour 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