
Das Backup Migration Plugin für WordPress ist in allen Versionen bis einschließlich 1.3.7 anfällig für Remote Code Execution über die Datei /includes/backup-heart.php.
Proof-of-Concept-Exploit für CVE-2023-6553 — eine kritische unauthorisierte RCE-Schwachstelle im WordPress-Plugin „Backup Migration“ (Versionen ≤ 1.3.7).
| Eigenschaft | Detail |
|---|---|
| CVE ID | CVE-2023-6553 |
| CVSS Score | 9.8 / 10 — Kritisch |
| CVSS Vector | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-94 — Unsachgemäße Kontrolle der Codegenerierung |
| Betroffenes Plugin | Backup Migration (slug: backup-backup) |
| Betroffene Versionen | ≤ 1.3.7 |
| Authentifizierung | Keine erforderlich (Unauthorisiert) |
| Entdeckt von | Wordfence |
Das Backup Migration-Plugin für WordPress ist anfällig für Remote Code Execution in allen Versionen bis einschließlich 1.3.7 über die Datei /includes/backup-heart.php.
Die Schwachstelle besteht, weil ein Angreifer die Werte steuern kann, die über den HTTP-Header Content-Dir an eine PHP-include-Anweisung übergeben werden. Durch Nutzung einer PHP-Filterkette kann ein Angreifer ohne Authentifizierung beliebigen PHP-Code einschleusen und so eine vollständige Remote Code Execution auf dem Server erreichen.
┌──────────┐ Content-Dir Header ┌──────────────────────┐ include() ┌──────────┐
│ Attacker │ ──── PHP Filter Chain ──▶│ backup-heart.php │ ──────────────▶ │ RCE │
│ │ (no auth needed) │ (vulnerable file) │ │ on Host │
└──────────┘ └──────────────────────┘ └──────────┘
readme.txtContent-Dir-Header an den verwundbaren Endpunkt.
├── exploit.py # 🎯 Sauberer, professioneller Exploit (mit ausführlichem Modus)
├── fancy_exploit.py # ✨ Schicke Version — gleicher Exploit, bessere Stimmung
├── php_filter_chain.py # 🔗 PHP-Filterketten-Generator-Modul
└── README.md # 📖 Du bist hier
exploit.py — Professioneller ExploitDas primäre, saubere Exploit-Skript, das für den professionellen Einsatz in Sicherheitsbewertungen und Fallstudien konzipiert ist. Funktionen umfassen:
-v) für detaillierte Betriebsausgabe-C)fancy_exploit.py — Die schicke Version ✨Eine ausdrucksstärkere Version desselben Exploits mit zusätzlicher Persönlichkeit. Funktionell identisch mit exploit.py, aber mit einer viel farbenfroheren Präsentation:
Hinweis: Beide Skripte teilen sich die identische Angriffslogik —
fancy_exploit.pyverpackt die Erfahrung lediglich in eine visuell ausdrucksstärkere Ausgabeschicht.
pip-Paketmanager# Repository klonen
git clone https://github.com/<your-username>/CVE-2023-6553.git
cd CVE-2023-6553
# Abhängigkeiten installieren
pip install -r requirements.txt
Hinweis:
php_filter_chain.pyist ein lokales Modul, das im Repository enthalten ist — keine zusätzliche Installation erforderlich.
exploit.py
# Prüfen, ob ein Ziel verwundbar ist (nur Aufklärung)
python3 exploit.py -u http://target.com -C
# Exploitieren und einen Befehl ausführen
python3 exploit.py -u http://target.com -c id
# Zuerst Verwundbarkeit prüfen, dann exploitieren
python3 exploit.py -u http://target.com -C -c whoami
# Ausführlicher Modus für detaillierte Ausgabe
python3 exploit.py -u http://target.com -c id -v
fancy_exploit.py
# Prüfen, ob ein Ziel verwundbar ist
python3 fancy_exploit.py -u http://target.com -C
# Exploitieren und einen Befehl ausführen
python3 fancy_exploit.py -u http://target.com -c id
# Zuerst prüfen, dann exploitieren, wenn verwundbar
python3 fancy_exploit.py -u http://target.com -C -c whoami
| Flag | Beschreibung |
|---|---|
-u, --url | (Erforderlich) Ziel-WordPress-URL |
-c, --command | Betriebssystembefehl zur Ausführung nach der Ausbeutung |
-C, --check | Schwachstellenstatus prüfen ohne Ausbeutung |
-v, --verbose | Ausführliche Ausgabe aktivieren (nur exploit.py) |
| Phase | Name | Beschreibung |
|---|---|---|
| 1 | 🔍 Aufklärung | Ruft readme.txt ab, um die installierte Plugin-Version zu erkennen |
| 2 | 🧪 Payload-Generierung | Erstellt eine PHP-Filterkette, die zu einem Webshell-Dropper dekodiert |
| 3 | 💣 Exploit-Auslieferung | Sendet die Payload an backup-heart.php über den Content-Dir-Header |
| 4 | 🚀 Befehlsausführung | Löst die bereitgestellte Webshell mit dem angegebenen Betriebssystembefehl aus |