
Detaillierter Penetrationstest-Bericht, der nicht authentifiziertes Path Traversal (CVE-2019-11447) im WordPress Simple Backup Plugin demonstriert, einschließlich Exploit-Schritten, Auswirkungsanalyse und Abhilfe-Empfehlungen.
| Element | Details |
|---|---|
| Dokumenttitel | Penetrationstest-Bericht - WordPress Path Traversal |
| Kunde/Prüfung | HackTheBox Lab - CPTS Übung 1 |
| Datum | 22. August 2026 |
| Prüfer | Fernando Viana (Penetration Tester) |
| Art der Prüfung | Gray Box (extern, ohne Zugangsdaten) |
| Laborumgebung | 154.57.164.73:30706 |
| Labordauer | 1 Stunde |
| Ziele | Identifizierung und Ausnutzung von Schwachstellen zum Abrufen geschützter Dateien |
| Erhaltene Flag | HTB{my_f1r57_h4ck} |
Im Rahmen dieser Penetrationsprüfung der unter 154.57.164.73:30706 gehosteten Webanwendung wurde eine kritische Schwachstelle identifiziert, die es nicht authentifizierten Angreifern ermöglicht, beliebige Dateien aus dem Serverdateisystem herunterzuladen und zu lesen.
Die verwundbare WordPress-Installation enthält ein veraltetes Plugin (Simple Backup v2.7.10) mit einer Path-Traversal-Schwachstelle (CVE-2019-11447), die unbefugten Dateizugriff ohne Authentifizierung oder Autorisierung erlaubt.
Diese Schwachstelle wurde erfolgreich ausgenutzt, um die Datei /flag.txt aus dem Server-Root abzurufen, was eine vollständige Kompromittierung der Vertraulichkeit bestätigt. Ein Angreifer mit diesem Zugriff könnte:
wp-config.php, .env)Es sind sofortige Maßnahmen zur Behebung dieser Schwachstelle erforderlich, da sie ein extremes Risiko für Datensicherheit, Datenschutzkonformität (DSGVO, HIPAA, PCI-DSS) und Systemintegrität darstellt.
| Schweregrad | Anzahl | Geschäftsauswirkung |
|---|---|---|
| 🔴 KRITISCH | 1 | Vollständige Verletzung der Vertraulichkeit; unbefugter Dateizugriff |
| 🟠 HOCH | 0 | — |
| 🟡 MITTEL | 0 | — |
| 🟢 NIEDRIG | 0 | — |
| ℹ️ INFORMATIV | 1 | Veraltete Softwareversionen erkannt |
Art der Prüfung: Gray Box (externer Angreifer, keine Zugangsdaten bereitgestellt, Netzwerkzugriff verfügbar)
Prüfungsdaten: 22. August 2026
Testansatz: Nichtevasive, methodische Prüfung nach dem branchenüblichen Penetrationstest-Framework (PTES):
CVE-2019-11447 | CWE-22: Unsachgemäße Begrenzung eines Pfadnamens auf ein eingeschränktes Verzeichnis
Das WordPress-Plugin Simple Backup (Version 2.7.10/2.7.11, Exploit-DB 39883) enthält eine Path-Traversal-Schwachstelle auf seiner Admin-Seite „Backup Manager". Das Plugin versäumt es, den über den GET-Parameter download_backup_file übergebenen Dateipfad zu bereinigen, wodurch ein Angreifer mithilfe relativer Pfadsequenzen (../) aus dem vorgesehenen Verzeichnis simple-backup/ ausbrechen und jede Datei herunterladen kann, die für den Webserverprozess lesbar ist — einschließlich Dateien im Dateisystem-Root.
Der verwundbare Endpunkt:
GET /wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt
page=backup_manager leitet die Anfrage an den Admin-Seiten-Handler des Plugins weiter; download_backup_file ist der Parameter, den der Code des Plugins direkt liest und ohne Validierung in einen Dateisystempfad konkateniert, was Directory Traversal ermöglicht.
7.5 - HIGH (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)
Confidentiality Breach: ⚠️ CRITICAL
Angreifer können jede Datei lesen, auf die der Webserver zugreifen kann, einschließlich:
| Datei | Auswirkung | Risikostufe |
|---|---|---|
/wp-config.php | Datenbank-Anmeldedaten, Salts, Schlüssel | 🔴 CRITICAL |
/.env | API-Schlüssel, Secrets, Konfiguration | 🔴 CRITICAL |
/etc/passwd | Benutzer-Enumeration, System-Mapping | 🟠 HIGH |
SSH-Schlüssel (.ssh/id_rsa) | Laterale Bewegung, Systemzugriff | 🔴 CRITICAL |
/proc/self/environ | Secrets der laufenden Anwendung | 🟠 HIGH |
| Benutzer-Upload-Verzeichnis | Private Dateien, Medien | 🟠 HIGH |
Regulatorische Auswirkungen:
Der Exploit-DB-Advisory (39883.txt, gelesen über searchsploit -x — siehe ht4-poc.png) dokumentiert das delete-Primitiv des Plugins aus simple-backup-manager.php:
if(array_key_exists('delete_backup_file', $_GET)){
$this->delete_local_backup_file($_GET['delete_backup_file']);
}
$bk_dir = ABSPATH."simple-backup/";
unlink($bk_dir . $filename);
$filename stammt direkt aus $_GET['delete_backup_file'] ohne basename()- oder Pfad-Eingrenzungsprüfung. Die Übergabe von ../pizza.txt löst $bk_dir . $filename zu .../simple-backup/../pizza.txt → .../pizza.txt auf und entkommt damit dem vorgesehenen Backup-Ordner.
Das Download-Primitiv, das in diesem Engagement tatsächlich ausgenutzt wurde (download_backup_file), folgt im selben Plugin exakt demselben unbereinigten Verkettungsmuster, liefert die Datei jedoch an den Anfragenden zurück, anstatt sie zu löschen — was den Abruf von /flag.txt aus dem Dateisystem-Wurzelverzeichnis ermöglichte (10× ../ von ABSPATH/simple-backup/).
Das Problem:
basename() zum Entfernen von Verzeichnisbestandteilenrealpath() innerhalb von ABSPATH."simple-backup/" bleibtcurrent_user_can()- / Authentifizierungsprüfung vor der Auslieferung der Datei — der Handler läuft beim Laden des Plugins, noch vor WordPress' eigener wp-admin-Authentifizierungsschranke, sodass er ohne Anmeldung erreichbar istDirekte Verbindung zum Ziel über den Browser (http://154.57.164.73:30706/). Die WordPress-Installation trägt den Titel "GETTING STARTED", und ein öffentlicher Blogbeitrag auf der Startseite gibt den genauen Plugin-Namen und die Version im Klartext preis: "Simple Backup Plugin 2.7.10 for WordPress" — es war nicht einmal Enumeration-Tooling erforderlich, um die verwundbare Komponente zu fingerprinten.

whatweb http://154.57.164.73:30706/