
Wing FTP Server Exploit per Esecuzione Remota di Codice (RCE) (CVE-2025-47812)
Exploit di Remote Code Execution (RCE) per Wing FTP Server (CVE-2025-47812)
📌 Crediti: Vulnerabilità scoperta da Julien (@MrTuxracer).
Questa implementazione del PoC si basa sulla loro ricerca originale.
Questo repository contiene un exploit Python per la vulnerabilità di Remote Code Execution (RCE) di Wing FTP Server (CVE-2025-47812). Questa falla critica consente agli attaccanti di eseguire codice da remoto come root/SYSTEM sulle istanze Wing FTP Server vulnerabili, anche con l'accesso anonimo abilitato.
Questa vulnerabilità ha origine dalla gestione impropria dei byte NULL nel parametro username durante il processo di autenticazione da parte di Wing FTP Server. Ciò consente agli attaccanti di iniettare codice Lua direttamente nei file di sessione. Questi file di sessione malevoli vengono poi eseguiti quando viene caricata una sessione valida, portando all'esecuzione arbitraria di comandi sul server.
Caratteristiche principali di questo exploit:
Questo strumento è destinato esclusivamente a fini educativi e di penetration testing autorizzato. L'autore non si assume alcuna responsabilità per qualsiasi uso improprio o danno causato da questo software. Assicurati sempre di avere un permesso esplicito e scritto prima di effettuare test su un sistema.
Questa vulnerabilità è stata scoperta e documentata in dettaglio da Julien (@MrTuxracer). Vedi l'articolo originale:
What the NULL?! Wing FTP Server RCE (CVE-2025-47812)
La vulnerabilità CVE-2025-47812 è un problema critico derivante da molteplici debolezze nel modo in cui Wing FTP Server gestisce l'autenticazione degli utenti e le sessioni:
c_CheckUser(): La funzione c_CheckUser(), responsabile dell'autenticazione dell'utente, utilizza internamente strlen() sul nome utente fornito. Quando viene iniettato un byte NULL (%00) nel nome utente (ad es., anonymous%00...), strlen() tronca la stringa a questo punto. Ciò significa che l'autenticazione riesce per la parte del nome utente prima del byte NULL, bypassando di fatto la convalida corretta.rawset(_SESSION, "username", username) all'interno di loginok.html utilizza il nome utente intero e non sanificato direttamente dai parametri GET o POST. Questo include il byte NULL e tutti i caratteri successivi.anonymous%00]]%0dlocal+h+%3d+io.popen("id")%0dlocal+r+%3d+h%3aread("*a")%0dh%3aclose()%0dprint(r)%0d--) comporta la scrittura di questo codice malevolo direttamente nel file di sessione.Questa vulnerabilità è particolarmente grave perché Wing FTP Server viene spesso eseguito con privilegi di root su Linux o privilegi SYSTEM su Windows per impostazione predefinita. Questa configurazione predefinita concede agli attaccanti il massimo controllo sul sistema compromesso in caso di sfruttamento riuscito.
Versioni interessate: Le versioni di Wing FTP Server precedenti alla 7.4.4 sono vulnerabili.
Questo script supporta vari argomenti da riga di comando per personalizzarne la funzionalità.
python3 CVE-2025-47812.py -h
usage: CVE-2025-47812.py.py [-h] [-u URL] [-f FILE] [-c COMMAND] [-v] [-o OUTPUT] [-U USERNAME]
Exploit script for command injection via login.html.
options:
-h, --help show this help message and exit
-u URL, --url URL Target URL (e.g., [http://192.168.134.130](http://192.168.134.130)). Required if -f not specified.
-f FILE, --file FILE File containing list of target URLs (one per line).
-c COMMAND, --command COMMAND
Custom command to execute. Default: whoami. If specified, verbose output is enabled automatically.
-v, --verbose Show full command output (verbose mode). Ignored if -c is used since verbose is auto-enabled.
-o OUTPUT, --output OUTPUT
File to save vulnerable URLs.
-U USERNAME, --username USERNAME
Username to use in the exploit payload. Default: anonymous
python3 CVE-2025-47812.py -u http://192.168.134.130 -c ipconfig

SessionModule.load(), invocata quando si accede a qualsiasi funzionalità autenticata (come /dir.html), esegue direttamente il file di sessione utilizzando loadfile(filepath) seguito da f(). Questo passo cruciale attiva il codice Lua iniettato, portando a Remote Code Execution.