
Exploit in Python per CVE-2023-32315 che mira ai server Openfire. Bypassa l'autenticazione del pannello di amministrazione tramite path traversal Unicode per creare un utente amministrativo, consentendo il caricamento di plugin malintenzionati e l'accesso a web shell.
La vulnerabilità CVE-2023-32315 colpisce i server Openfire, consentendo a un attaccante di bypassare il login del pannello amministrativo web senza credenziali valide. L'exploit aggiunge un utente amministrativo, permettendo all'attaccante di caricare un plugin malevolo e ottenere una shell web.
CVE-2023-32315 è una vulnerabilità in Openfire che permette di accedere ai JSP del wizard di configurazione iniziale (/setup/setup-s/...)
anche dopo il suo completamento, sfruttando una cattiva validazione dei percorsi mediante path traversal con codifica Unicode/"best-fit"
(%u002e%u002e, equivalente a ../), invece di caratteri letterali. Ciò consente di raggiungere user-groups.jsp e user-create.jsp senza autenticazione,
come se il server fosse appena stato installato, e creare un nuovo utente amministratore. Lo script verifica il risultato in due modi: controllando se
l'utente appare in user-summary.jsp, e verificando che le credenziali create funzionino su login.jsp. Una volta dentro il pannello, il
passo successivo (fuori dallo scopo di questo script) sarebbe caricare un plugin malevolo per eseguire comandi arbitrari.
git clone https://github.com/pulentoski/Explotacion-CVE-2023-32315-Openfire.git
cd Explotacion-CVE-2023-32315-Openfire
Non richiede dipendenze esterne — usa solo librerie standard di Python 3 (http.client, re, time, urllib.parse).
Lo script è interattivo, senza flag da riga di comando:
python3 exploit.py
Ti chiederà di scegliere una modalità:
[1] Singolo obiettivo → inserisci l'URL direttamente (es: http://127.0.0.1:9090)
[2] Lista di obiettivi → inserisci il percorso di un .txt con un URL per riga
L'utente/password che crea (pepe2/pepe2) è hardcodato all'inizio dello script — modificalo lì se necessario.
📄 Risultati: gli obiettivi confermati vengono salvati in exito.txt; se un obiettivo fallisce la verifica, l'HTML della risposta viene salvato in debug_<usuario>.html per revisione manuale.
("openfire") && icon_hash=="1211608009"
Questo script è pensato per ambienti controllati e audit autorizzati. L'autore non si assume alcuna responsabilità per un uso improprio.