
Ein schnelles Tool zur Aufzählung von WordPress-Plugins
„Warum blind scannen, wenn WordPress sich selbst offenbart?“
Ein schneller WordPress-Plugin- und Theme-Scanner, der installierte Plugins über REST-API-Enumeration und Themes über HTML-Erkennung ermittelt und sie anschließend bekannten Schwachstellen zuordnet. Über 5000 Plugins ohne Brute-Force erkennbar, mit Brute-Force tausende mehr.
Seit dem 9. März 2026 hat Wordfence ihre v2-API eingestellt. Alle WPProbe-Versionen vor v0.10.16 haben eine defekte update-db-Funktionalität. Du musst WPProbe aktualisieren.
Standardmäßig lädt wpprobe update-db eine vorgefertigte Datenbank aus diesem Repository (alle 2 Stunden per CI aktualisiert), sodass kein API-Schlüssel erforderlich ist. Wenn du selbst direkt von Wordfence abrufen möchtest, kannst du optional einen kostenlosen API-Schlüssel einrichten:
--api-key-Flaggo 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 (in kali-rolling enthalten)
sudo apt install wpprobe
# Go (erfordert 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
# Aus dem Quellcode
git clone https://github.com/Chocapikk/wpprobe && cd wpprobe && go build -o wpprobe
# Aktuelles Verzeichnis für Eingabe-/Ausgabedateien mounten
docker run -it --rm -v $(pwd):/data wpprobe scan -f /data/targets.txt -o /data/results.csv
# Schwachstellendatenbanken persistent speichern
docker run -it --rm \
-v $(pwd):/data \
-v wpprobe-config:/config \
wpprobe scan -f /data/targets.txt -o /data/results.json
# Datenbanken aktualisieren
docker run -it --rm \
-v wpprobe-config:/config \
-e WORDFENCE_API_KEY=your_key \
-e WPSCAN_API_TOKEN=your_token \
wpprobe update-db
# Einzelnes Ziel
wpprobe scan -u https://example.com
# Mehrere Ziele mit Threading
wpprobe scan -f targets.txt -t 20
# Benutzerdefinierte Optionen
wpprobe scan -u https://example.com \
--header "User-Agent: CustomAgent" \
--proxy http://proxy:8080 \
--rate-limit 10 \
--no-check-version
# Ausgabeformate
wpprobe scan -u https://example.com -o results.csv
wpprobe scan -u https://example.com -o results.json
# Datenbanken aktualisieren (Wordfence erfordert kostenlosen API-Schlüssel, WPScan erfordert Enterprise-API-Token)
wpprobe update-db --api-key your_wordfence_key
# Oder Umgebungsvariable verwenden
export WORDFENCE_API_KEY=your_key_here
wpprobe update-db
# Schwachstellen durchsuchen
wpprobe search --cve CVE-2024-1234
wpprobe search --plugin woocommerce
wpprobe search --severity critical
wpprobe search --auth Unauth
wpprobe search --title "SQL Injection" --details
# Datenbankstatistiken
wpprobe list
Setze WORDFENCE_API_KEY für Wordfence-Datenbankupdates (kostenlos). Setze WPSCAN_API_TOKEN für WPScan-Datenbankupdates (nur Enterprise-Plan).
wpprobe update
Nur Binärdateien, die aus einem Release installiert wurden, aktualisieren sich selbst. Ein Build aus dem Quellcode ist in der Regel neuer als das letzte Release, daher wäre ein Ersetzen ein Downgrade: Baue stattdessen aus dem Repository neu, oder übergib --force, um die Release-Binärdatei trotzdem zu installieren.
Beim Start prüft WPProbe das neueste veröffentlichte Release, um das Banner zu kennzeichnen. Die Antwort wird 24 Stunden lang zwischengespeichert, und die Prüfung kann vollständig deaktiviert werden:
export WPPROBE_NO_UPDATE_CHECK=1
Stealthy-Modus fragt exponierte REST-API-Routen (?rest_route=/) ab und gleicht gefundene Endpunkte mit einer vorkompilierten Datenbank bekannter Plugin-Signaturen ab. Außerdem werden aktive Themes erkannt, indem wp-content/themes/-Referenzen aus dem Seiten-HTML geparst und deren Version aus style.css abgerufen wird. Dies erzeugt minimale Anfragen und vermeidet die Erkennung durch WAFs.
Brute-Force-Modus prüft Plugin-Verzeichnisse direkt über GET-Anfragen. Eine 403-Antwort bestätigt, dass das Plugin existiert (Verzeichnislisting verboten). Eine 200-Antwort wird validiert, indem nach readme.txt im Verzeichnislisting gesucht wird, um Fehlalarme durch WordPress-Instanzen zu vermeiden, die für alle Pfade 200 zurückgeben.
Hybrid-Modus kombiniert beides: zuerst stealthy für eine geräuscharme Erkennung, dann brute-force für verbleibende Plugins. Themes werden unabhängig vom Modus immer über HTML erkannt.
Erkannte Plugins und Themes werden mit bekannten CVEs aus den Wordfence- und WPScan-Datenbanken abgeglichen, wobei Versionsbereichsabgleich zur Identifizierung verwundbarer Installationen durchgeführt wird.
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
Die JSON-Ausgabe ist immer ein Array mit einem Objekt pro gescanntem Ziel, sodass eine einzelne Datei gültig bleibt, egal ob du eine URL oder viele mit -f scannst.
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"
}
]
}
}
]
Beiträge sind willkommen. Bitte öffne ein Issue oder reiche einen Pull-Request ein.
MIT-Lizenz – Details siehe LICENSE-Datei.
Schwachstellendaten stammen von Wordfence Intelligence, bereitgestellt von Defiant, Inc. Copyright (c) Defiant, Inc. Alle Rechte vorbehalten. Die im db-Release dieses Repositorys veröffentlichte vorgefertigte Datenbank ist eine verarbeitete Kopie dieser Daten, die unter der in den Wordfence Intelligence Nutzungsbedingungen gewährten Lizenz weiterverteilt wird. Jede von dir erstellte Kopie muss die Urheberrechtsangabe von Defiant, Inc. und diese Lizenz reproduzieren, die beide in NOTICE enthalten sind und beim Ausführen von update-db neben der Datenbank auf der Festplatte geschrieben werden.
WPProbe ist nicht mit Defiant, Inc. verbunden, wird von ihr nicht unterstützt oder gesponsert.
Entwickelt von @Chocapikk.
| Modus | Methode | Tarnung | Abdeckung |
|---|
stealthy (Standard) | REST-API-Endpunkt-Abgleich + HTML-Theme-Erkennung | Hoch | 5000+ Plugins + Themes |
bruteforce | Direkte Verzeichnisprüfungen | Niedrig | 10k+ Plugins |
hybrid | Erst stealthy, dann brute-force | Mittel | Maximal |
| Variable | Beschreibung |
|---|
WORDFENCE_API_KEY | Wordfence-API-Schlüssel für Datenbankupdates (kostenlos, hier erhalten) |
WPSCAN_API_TOKEN | WPScan-Enterprise-API-Token für Datenbankupdates |
HTTP_PROXY / HTTPS_PROXY / ALL_PROXY | Proxy-Konfiguration |
NO_PROXY | Proxy-Umgehungsregeln |