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-Kette Proof-of-Concept | Kitploit
Tools/GitHubGitHub/sowarma/wp2shell-poc
SchwachstellenanalyseExploitationWebanwendungs-ExploitationDatenexfiltrationPost-ExploitationWebsicherheitPenetrationstestsLernen & BildungAPI-Sicherheit
GitHubsowarma/wp2shell-poc

wp2shell-PoC

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

91621510vor 19 TagenVon Kitploit 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 dient ausschließlich zu Bildungs- oder Bug-Bounty-Zwecken. Unautorisierte Nutzung außerhalb kontrollierter Umgebungen ist strengstens untersagt.

Übersicht

Proof-of-Concept für die wp2shell-Verwundbarkeitskette, die den WordPress Core betrifft und CVE-2026-63030 mit CVE-2026-60137 kombiniert. Das Projekt demonstriert das Zusammenspiel zwischen der REST-API-Batch-Routen-Verwechslungs-Verwundbarkeit und einer WP_Query-SQL-Injection, was einen unauthentifizierten Weg zur vollständigen WordPress-Übernahme und Remote Code Execution (RCE) ermöglicht.

Die vollständige Sicherheitsmeldung finden Sie hier

Wie es funktioniert

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

Die Routen-Verwechslung: /wp-json/batch/v1 verarbeitet mehrere Unteranfragen über parallele $matches- und $validation-Arrays, die nach Position indiziert sind. Eine Unteranfrage mit einem fehlerhaften Pfad (z. B. http://) wird an $validation angehängt, aber aufgrund einer -Anweisung nicht an , wodurch die Arrays desynchronisiert werden. Spätere Anfragen werden unter dem Handler verarbeitet, der für die Anfrage vorgesehen ist, wodurch Schema-Validierung und Berechtigungsprüfungen umgangen werden.

Tool herunterladen
continue
$matches
nächste

Die SQL-Injection: Zwei verschachtelte Batch-Aufrufe nutzen dies aus. Der äußere Batch umgeht die Methoden-Allowlist (die normalerweise GET blockiert). Der innere Batch liefert eine skalare author_exclude-Zeichenkette an GET /wp/v2/posts – die Desynchronisation leitet sie an der Validierung vorbei, und WP_Query interpoliert die nicht bereinigte Zeichenkette direkt in SQL, was eine UNION-basierte Blind-Injection ergibt.

Cache-Vergiftung: Die SQLi gibt gefälschte WP_Post-Objekte zurück, die WordPress im Speicher zwischenspeichert. Diese gefälschten Beiträge 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-Beitrag im Speicher, dessen JSON "user_id": 1 enthält. Ein Zykluserkennungs-Gadget löst wp_update_post() aus, ohne post_content zu überschreiben, wodurch die Nutzlast des Angreifers erhalten bleibt. Die Anwendung des Changesets übernimmt vorübergehend die Identität des Administrators.

Hook-Wiedereintritt: Ein fabrizierter Beitrag mit dem Status parse und dem Typ request löst den parse_request-Hook aus und spielt die gesamte Batch-Anfrage mit der angenommenen Admin-Rolle erneut ab. Diesmal ist eine POST /wp/v2/users-Unteranfrage erfolgreich und erstellt ein neues Admin-Konto.

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

Betroffene Versionen

VersionStatus
WordPress 6.9.0 – 6.9.4Verwundbar
WordPress 7.0.0 – 7.0.1Verwundbar
WordPress 6.9.5Behoben
WordPress 7.0.2+Behoben

Verwendung

Zur Nutzung dieses PoC ist lediglich Python 3.8+ erforderlich.

Führen Sie es aus dem Repository-Verzeichnis aus, um eine Verwundbarkeitsprüfung durchzuführen:

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

Prüfmodus (Standard)

Führt eine einzelne Verwundbarkeitsprüfung durch. Sendet eine harmlose Batch-Marker-Sonde, die den Routen-Verwechslungs-Bug erkennt, ohne SQLi-Nutzlasten auszuführen. Ein verwundbares 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ätigungsnutzlast zu senden. Die Bestätigung versucht zuerst UNION-Reflexion und fällt dann auf zeitbasierte Sonden zurück.

Einzelnes Ziel prüfen (Standardmodus)

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

Mit explizitem Modus prüfen

root@kitploit:~
Mit explizitem Modus prüfen
wp2shell.py http://target.com --check

Mit SQLi-Bestätigung prüfen

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

Lesemodus – Daten per SQL-Injection extrahieren

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

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

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

Server-Fingerabdruck (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 bestehender Admin an und lädt Plugin-Shell hoch):

Bestimmten Befehl ausführen

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

Interaktive Shell

root@kitploit:~
wp2shell.py http://target.com --shell --user admin --password '<wiederhergestellt>' --interactive
Ohne Anmeldedaten (Pre-Auth-RCE – führt die vollständige SQLi→Admin-Brücke aus, meldet sich als generierter Admin an und lädt dann die 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 Pro-Lauf-Token hochgeladen. Die hochgeladene Webshell wird automatisch entfernt. Wenn die Pre-Auth-Brücke einen Administrator erstellt, wird dieses generierte Konto nach Abschluss der Shell-Sitzung automatisch entfernt.

Liste aller Flags:

FlagBeschreibung
--checkVerwundbarkeitsprüfung ausführen (Standardmodus, wenn kein anderer Modus angegeben ist)
--readDaten per SQL-Injection extrahieren
--shellBefehle auf dem Server ausführen
--queryBenutzerdefinierte SQL-Abfrage für den Lesemodus
--presetVordefinierte Abfragevoreinstellung (users, config, versions)
--techniqueSQLi-Extraktionstechnik: union, error, blind oder auto (Standard)
--confirm-sqliSQLi-Bestätigungsnutzlast nach der Prüfung senden
--cmdAuszuführender Befehl im Shell-Modus (Standard: id)
--interactive, -iInteraktiver Shell-Modus
--userAdmin-Benutzername für die authentifizierte Shell
--passwordAdmin-Passwort für die authentifizierte Shell
--proxyHTTP/HTTPS-Proxy (z. B. http://127.0.0.1:8080)
--timeoutAnfrage-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 dient ausschließlich zu Bildungs- oder Bug-Bounty-Zwecken. Unautorisierte Nutzung außerhalb kontrollierter Umgebungen ist strengstens untersagt.