
Questo script dimostra un proof-of-concept (PoC) per lo sfruttamento di una vulnerabilità di lettura file nella libreria iconv, come descritto nel blog di Ambionics Security https://www.ambionics.io/blog/iconv-cve-2024-2961-p1.
Questo script dimostra come sfruttare una vulnerabilità nei sistemi che utilizzano la libreria iconv quando gestisce male le conversioni di codifica dei caratteri, come descritto in CVE-2024-2961. Permette a un attaccante di leggere file arbitrari dal server sfruttando le catene di filtri PHP e una gestione difettosa della codifica.
Lo script automatizza il processo di caricamento di un payload appositamente creato, il recupero del file risultante e la visualizzazione del suo contenuto. Si basa sulla ricerca descritta nell'articolo: Iconv CVE-2024-2961: Sfruttare le Conversioni di Codifica dei Caratteri.
Lo script segue questi passaggi:
Creazione del Payload
Crea un payload basato su catene di filtri PHP che sfrutta le conversioni di codifica iconv per leggere qualsiasi file sul server. Questo payload è progettato per aggirare le restrizioni normali, consentendo l'accesso a file come /etc/passwd o altri file sensibili.
Caricamento del File
Invia una richiesta POST all'endpoint admin-ajax.php del server di destinazione, simulando il caricamento di un'immagine. Il payload è nascosto all'interno della richiesta in modo che il server lo elabori come se fosse un file legittimo.
Download del File
Dopo aver caricato il payload, lo script scarica il file che ora contiene il contenuto del file di destinazione. Infine, estrae e visualizza questi contenuti.
requests (installala con pip install requests)iconv e PHP.Clona il Repository o Scarica lo Script:
git clone https://github.com/kyotozx/CVE-2024-2961-Remote-File-Read.git
cd CVE-2024-2961-Remote-File-Read
Esegui lo Script:
python3 lfi.py
Segui le Richieste:
/etc/passwd).1).Cosa Fa lo Script:
Sfruttamento Lettura Remota File - CVE-2024-2961
Inserisci il percorso del file che vuoi leggere (es. /etc/passwd): /etc/passwd
Inserisci un ID numerico per il caricamento (es. 1): 1
File caricato con successo: http://blog.bigbang.htb/wp-content/uploads/2025/01/1-50.png
Contenuto del file:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
Questo script è destinato esclusivamente a fini educativi e di test autorizzati. Non utilizzarlo su sistemi senza esplicita autorizzazione.