
# Schreibgeschütztes CLI zur Prüfung, ob eine WordPress-Site WP2Shell (CVE-2026-63030 / CVE-2026-60137) ausgesetzt ist
Ein Kommandozeilen-Tool, das prüft, ob eine WordPress-Seite für WP2Shell (CVE-2026-63030 und CVE-2026-60137) exponiert ist. Es liest die WordPress-Version und die REST-API-Oberfläche über schreibgeschützte Anfragen aus und gibt eine Bewertung ab. Es nutzt keine Schwachstellen aus.
[!WARNING] Nur für autorisierte Tests. Verwenden Sie es nur auf Websites, die Ihnen gehören oder für die Sie eine schriftliche Genehmigung zur Prüfung haben. Der Autor (
DanSec) übernimmt keine Verantwortung für Missbrauch oder Schäden.
WP2Shell verknüpft eine SQL-Injection (CVE-2026-60137) mit einem Fehler im REST-Batch-Prozessor
(CVE-2026-63030) über den /wp-json/batch/v1-Endpunkt und ermöglicht so nicht authentifizierte Remote-Codeausführung
auf einer Standard-WordPress-Installation. Beide CVEs sind im Katalog bekannter ausgenutzter Schwachstellen von CISA enthalten.
| Branch | Verwundbar | Behoben in |
|---|---|---|
| 6.9.x | 6.9.0 bis 6.9.4 | 6.9.5 |
| 7.0.x | 7.0.0 bis 7.0.1 | 7.0.2 |
| 7.1 und neuer | nicht betroffen | n/a |
Erfordert Python 3.8+.
pip install -r requirements.txt
requests und rich sind erforderlich. sublist3r ist optional (Subdomain-Enumeration).
Für eine umfangreichere Enumeration installieren Sie subfinder
(ein Go-Binary, nicht pip) und übergeben Sie --subfinder.
# Eine einzelne Host prüfen
python wpScanner.py example.com --passive
# Subdomains einer Root-Domain enumerieren und jede prüfen
python wpScanner.py example.com --subfinder --threads 8
| Option | Beschreibung | Standard |
|---|---|---|
-o, --output | CSV-Ausgabedatei | WP2Shell_output.csv |
--passive | Nur den angegebenen Host prüfen, Enumeration überspringen | aus |
--subfinder | Subfinder als Subdomain-Quelle hinzufügen | aus |
--threads | Parallele Worker | 1 |
--retries | Wiederholungen pro Host | 1 |
--rate-limit | Max. Anfragen/Sek. (Einzelthread, 0 = keine Begrenzung) | 0 |
| Bewertung | Bedeutung |
|---|---|
VULNERABLE | Betroffene Version und der Batch-Endpunkt ist erreichbar. |
LIKELY_MITIGATED | Betroffene Version, aber der Batch-Endpunkt scheint blockiert oder REST ist deaktiviert. |
PATCHED | Behobene Version oder älter als die betroffenen Releases. |
VERSION_UNKNOWN | WordPress gefunden, Version konnte nicht gelesen werden. |
NOT_WORDPRESS | Kein WordPress-Fingerabdruck. |
ERROR | Nicht erreichbar oder Netzwerkfehler. |
Die Ergebnisse werden auch als CSV geschrieben. Wenn Versionsquellen widersprüchlich sind, klassifiziert das Tool anhand der
niedrigsten, um einen falschen Entwarnungs-Befund zu vermeiden. Eine Remote-Prüfung kann einen Backport-Patch, der die
Versionszeichenfolge unverändert lässt, nicht erkennen. Daher ist auf Hosts, die Sie kontrollieren, wp core version die maßgebliche Quelle.
Aktualisieren Sie den Core auf 6.9.5, 7.0.2 oder 7.1+ (wp core update). Wenn Sie noch nicht patchen können, blockieren Sie
/wp-json/batch/v1 an Ihrer Firewall und schränken Sie anonymen REST-Zugriff ein.
Nur für autorisierte, defensive Zwecke bereitgestellt. Sie sind dafür verantwortlich, die Berechtigung zu haben, jeden Host zu prüfen, auf den Sie das Tool richten.