WPScan

Scanner de sécurité WordPress. Énumère les plugins, thèmes, utilisateurs et vulnérabilités connues. Utilise WPVulnDB pour la détection de problèmes mappés aux CVE. WordPress security scanner. Enumerates plugins, themes, users, and known vulnerabilities. Uses WPVulnDB for CVE-mapped issue detection.

↗ https://wpscan.com

Overview

WPScan is a black-box WordPress vulnerability scanner. It identifies vulnerable plugins/themes, weak credentials, exposed configuration files, and misconfigurations. A free WPScan API token gives access to the vulnerability database.

Basic Scanning

Basic scan (no auth)

wpscan --url https://target.com

With WPVulnDB API token (enables CVE lookups)

wpscan --url https://target.com --api-token YOUR_TOKEN

Verbose output

wpscan --url https://target.com -v

Enumeration

Enumerate all (plugins, themes, users, timthumbs, config backups)

wpscan --url https://target.com -e ap,at,u,tt,cb
wpscan --url https://target.com -e ap          # All plugins
wpscan --url https://target.com -e vp          # Vulnerable plugins only
wpscan --url https://target.com -e p           # Popular plugins
wpscan --url https://target.com -e at          # All themes
wpscan --url https://target.com -e vt          # Vulnerable themes only

Enumerate users

wpscan --url https://target.com -e u

Enumerate specific user IDs

wpscan --url https://target.com -e u1-10

Password Attacks

Username + password list

wpscan --url https://target.com --usernames admin --passwords /usr/share/wordlists/rockyou.txt

Multiple usernames from file

wpscan --url https://target.com --usernames users.txt --passwords rockyou.txt

Throttle to avoid lockout

wpscan --url https://target.com --usernames admin --passwords rockyou.txt \
  --password-attack wp-login --throttle 500

XML-RPC brute-force (faster — multiple tries per request)

wpscan --url https://target.com --usernames admin --passwords rockyou.txt \
  --password-attack xmlrpc

Detection Mode

Passive only (stealthy — fewer requests)

wpscan --url https://target.com --detection-mode passive

Aggressive (more thorough)

wpscan --url https://target.com --detection-mode aggressive

Mixed (default)

wpscan --url https://target.com --detection-mode mixed

Output

JSON output

wpscan --url https://target.com -f json -o results.json

CLI table output to file

wpscan --url https://target.com -o results.txt

Tips

  • Register at wpscan.com for a free API token (25 API calls/day on free tier)
  • --enumerate ap with --api-token shows CVEs for each plugin version
  • If login is behind HTTP auth, use --http-auth user:pass
  • Outdated plugin versions often have public exploits on exploit-db or GitHub
Help / Man page
wpscan [options]

--url URL                 Target URL
--api-token TOKEN         WPVulnDB API token
-e, --enumerate [opts]   Enumeration options:
  vp = vulnerable plugins
  ap = all plugins
  p  = popular plugins
  vt = vulnerable themes
  at = all themes
  t  = popular themes
  tt = timthumbs
  cb = config backups
  dbe = db exports
  u  = users
  m  = media IDs
--detection-mode MODE     passive, mixed (default), aggressive
--usernames LIST          Username or file
--passwords FILE          Password wordlist
--password-attack TYPE    wp-login, xmlrpc, xmlrpc-multicall
--throttle MS             Milliseconds between password attempts
--max-threads N           Max threads (default: 5)
--proxy URL               Proxy (e.g. http://127.0.0.1:8080)
--cookie COOKIE           HTTP cookie
--http-auth user:pass     HTTP basic auth
-f FORMAT                 output format: cli, cli-no-colour, json, cli-no-colour
-o FILE                   Output file
-v                        Verbose

Vue d’ensemble

WPScan est un scanner de vulnérabilités WordPress en boîte noire. Il identifie les plugins/thèmes vulnérables, les identifiants faibles, les fichiers de configuration exposés, et les mauvaises configurations. Un token API WPScan gratuit donne accès à la base de données de vulnérabilités.

Scan de base

# Scan basique (sans auth)
wpscan --url https://target.com

# Avec un token API WPVulnDB (active les recherches CVE)
wpscan --url https://target.com --api-token YOUR_TOKEN

# Sortie verbeuse
wpscan --url https://target.com -v

Énumération

# Tout énumérer (plugins, thèmes, utilisateurs, timthumbs, sauvegardes de config)
wpscan --url https://target.com -e ap,at,u,tt,cb

wpscan --url https://target.com -e ap          # Tous les plugins
wpscan --url https://target.com -e vp          # Plugins vulnérables uniquement
wpscan --url https://target.com -e p           # Plugins populaires
wpscan --url https://target.com -e at          # Tous les thèmes
wpscan --url https://target.com -e vt          # Thèmes vulnérables uniquement

# Énumérer les utilisateurs
wpscan --url https://target.com -e u

# Énumérer des IDs d'utilisateur spécifiques
wpscan --url https://target.com -e u1-10

Attaques par mot de passe

# Nom d'utilisateur + liste de mots de passe
wpscan --url https://target.com --usernames admin --passwords /usr/share/wordlists/rockyou.txt

# Plusieurs noms d'utilisateur depuis un fichier
wpscan --url https://target.com --usernames users.txt --passwords rockyou.txt

# Limiter le débit pour éviter un verrouillage
wpscan --url https://target.com --usernames admin --passwords rockyou.txt \
  --password-attack wp-login --throttle 500

# Brute-force XML-RPC (plus rapide : plusieurs essais par requête)
wpscan --url https://target.com --usernames admin --passwords rockyou.txt \
  --password-attack xmlrpc

Mode de détection

# Passif uniquement (discret : moins de requêtes)
wpscan --url https://target.com --detection-mode passive

# Agressif (plus approfondi)
wpscan --url https://target.com --detection-mode aggressive

# Mixte (par défaut)
wpscan --url https://target.com --detection-mode mixed

Sortie

# Sortie JSON
wpscan --url https://target.com -f json -o results.json

# Sortie tableau CLI vers fichier
wpscan --url https://target.com -o results.txt

Conseils

  • S’inscrire sur wpscan.com pour un token API gratuit (25 appels API/jour sur l’offre gratuite)
  • --enumerate ap avec --api-token affiche les CVE pour chaque version de plugin
  • Si la connexion est derrière une auth HTTP, utiliser --http-auth user:pass
  • Les versions de plugins obsolètes ont souvent des exploits publics sur exploit-db ou GitHub
Aide / Page de manuel
wpscan [options]

--url URL                 Target URL
--api-token TOKEN         WPVulnDB API token
-e, --enumerate [opts]   Enumeration options:
  vp = vulnerable plugins
  ap = all plugins
  p  = popular plugins
  vt = vulnerable themes
  at = all themes
  t  = popular themes
  tt = timthumbs
  cb = config backups
  dbe = db exports
  u  = users
  m  = media IDs
--detection-mode MODE     passive, mixed (default), aggressive
--usernames LIST          Username or file
--passwords FILE          Password wordlist
--password-attack TYPE    wp-login, xmlrpc, xmlrpc-multicall
--throttle MS             Milliseconds between password attempts
--max-threads N           Max threads (default: 5)
--proxy URL               Proxy (e.g. http://127.0.0.1:8080)
--cookie COOKIE           HTTP cookie
--http-auth user:pass     HTTP basic auth
-f FORMAT                 output format: cli, cli-no-colour, json, cli-no-colour
-o FILE                   Output file
-v                        Verbose