
Un outil rapide d'énumération de plugins WordPress
"Parce que pourquoi scanner à l'aveugle quand WordPress s'expose lui-même ?"
Un scanner rapide de plugins et de thèmes WordPress qui détecte les plugins installés via l'énumération de l'API REST et les thèmes via la découverte HTML, puis les associe à des vulnérabilités connues. Plus de 5000 plugins détectables sans force brute, et des milliers d'autres avec.
Depuis le 9 mars 2026, Wordfence a déprécié son API v2. Toutes les versions de WPProbe antérieures à v0.10.16 ont une fonctionnalité update-db cassée. Vous devez mettre à jour WPProbe.
Par défaut, wpprobe update-db récupère une base de données pré-construite depuis ce dépôt (mise à jour toutes les 2h via CI), donc aucune clé API n'est nécessaire. Si vous souhaitez récupérer les données directement depuis Wordfence, vous pouvez éventuellement configurer une clé API gratuite :
--api-keygo install github.com/Chocapikk/wpprobe@latest
wpprobe update-db
wpprobe scan -u https://example.com
wpprobe scan -u https://example.com --mode stealthy
wpprobe scan -u https://example.com --mode bruteforce
wpprobe scan -u https://example.com --mode hybrid
# Kali Linux (included in kali-rolling)
sudo apt install wpprobe
# Go (requires 1.22+)
go install github.com/Chocapikk/wpprobe@latest
# Nix
nix-shell -p wpprobe
# Docker
docker run -it --rm wpprobe scan -u https://example.com
# From source
git clone https://github.com/Chocapikk/wpprobe && cd wpprobe && go build -o wpprobe
# Mount current directory for input/output files
docker run -it --rm -v $(pwd):/data wpprobe scan -f /data/targets.txt -o /data/results.csv
# Persist vulnerability databases
docker run -it --rm \
-v $(pwd):/data \
-v wpprobe-config:/config \
wpprobe scan -f /data/targets.txt -o /data/results.json
# Update databases
docker run -it --rm \
-v wpprobe-config:/config \
-e WORDFENCE_API_KEY=your_key \
-e WPSCAN_API_TOKEN=your_token \
wpprobe update-db
# Single target
wpprobe scan -u https://example.com
# Multiple targets with threading
wpprobe scan -f targets.txt -t 20
# Custom options
wpprobe scan -u https://example.com \
--header "User-Agent: CustomAgent" \
--proxy http://proxy:8080 \
--rate-limit 10 \
--no-check-version
# Output formats
wpprobe scan -u https://example.com -o results.csv
wpprobe scan -u https://example.com -o results.json
# Update databases (Wordfence requires free API key, WPScan requires Enterprise API token)
wpprobe update-db --api-key your_wordfence_key
# Or use env var
export WORDFENCE_API_KEY=your_key_here
wpprobe update-db
# Search vulnerabilities
wpprobe search --cve CVE-2024-1234
wpprobe search --plugin woocommerce
wpprobe search --severity critical
wpprobe search --auth Unauth
wpprobe search --title "SQL Injection" --details
# Database statistics
wpprobe list
Définissez WORDFENCE_API_KEY pour les mises à jour de la base de données Wordfence (gratuite). Définissez WPSCAN_API_TOKEN pour les mises à jour de la base de données WPScan (plan Enterprise uniquement).
wpprobe update
Le mode furtif interroge les routes de l'API REST exposées (?rest_route=/) et fait correspondre les points de terminaison découverts à une base de données précompilée de signatures de plugins connus. Il découvre également les thèmes actifs en analysant les références wp-content/themes/ dans le HTML de la page et récupère leur version depuis style.css. Cela génère un minimum de requêtes et évite la détection par les WAF.
Le mode force brute vérifie directement les répertoires des plugins via des requêtes GET. Une réponse 403 confirme que le plugin existe (liste des répertoires interdite). Une réponse 200 est validée en vérifiant la présence de readme.txt dans la liste du répertoire afin d'éviter les faux positifs provenant d'instances WordPress qui renvoient 200 pour tous les chemins.
Le mode hybride combine les deux : furtif d'abord pour une détection à faible bruit, puis force brute pour les plugins restants. Les thèmes sont toujours découverts via HTML, quel que soit le mode.
Les plugins et thèmes détectés sont mis en correspondance avec les CVE connues des bases de données Wordfence et WPScan, avec une correspondance par plage de versions pour identifier les installations vulnérables.
CSV :
URL,Plugin,Version,Severity,AuthType,CVEs,CVE Links,CVSS Score,CVSS Vector,Title
http://example.com,give,2.20.1,critical,Unauth,CVE-2025-22777,https://www.cve.org/CVERecord?id=CVE-2025-22777,9.8,CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H,GiveWP <= 3.19.3 - Unauthenticated PHP Object Injection
JSON :
{
"url": "http://example.com",
"plugins": {
"give": [
{
"version": "2.20.1",
"severities": [
{
"critical": [
{
"auth_type": "Unauth",
"vulnerabilities": [
{
"cve": "CVE-2025-22777",
"cve_link": "https://www.cve.org/CVERecord?id=CVE-2025-22777",
"title": "GiveWP <= 3.19.3 - Unauthenticated PHP Object Injection",
"cvss_score": 9.8,
"cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
}
]
}
]
}
]
}
],
"wordpress-seo": [
{
"version": "27.1.1"
}
]
}
}
Les contributions sont les bienvenues. Veuillez ouvrir une issue ou soumettre une pull request.
Licence MIT - voir le fichier LICENSE pour plus de détails.
Développé par @Chocapikk.
| Mode | Méthode | Furtivité | Couverture |
|---|
stealthy (par défaut) | Correspondance des points de terminaison de l'API REST + découverte des thèmes via HTML | Élevée | 5000+ plugins + thèmes |
bruteforce | Vérifications directes des répertoires | Faible | 10k+ plugins |
hybrid | Furtif d'abord, puis force brute | Moyenne | Maximale |
| Variable | Description |
|---|
WORDFENCE_API_KEY | Clé API Wordfence pour les mises à jour de la base de données (gratuite, obtenez-en une ici) |
WPSCAN_API_TOKEN | Jeton API Enterprise WPScan pour les mises à jour de la base de données |
HTTP_PROXY / HTTPS_PROXY / ALL_PROXY | Configuration du proxy |
NO_PROXY | Règles de contournement du proxy |