← retour aux outils back to tools

# 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