
Wing FTP Server - Exploit de Execução Remota de Código (RCE) (CVE-2025-47812)
Exploit de Execução Remota de Código (RCE) do Servidor FTP Wing (CVE-2025-47812)
📌 Crédito: Vulnerabilidade descoberta por Julien (@MrTuxracer).
Esta implementação de PoC é baseada na pesquisa original deles.
Este repositório hospeda um exploit em Python para a vulnerabilidade de Execução Remota de Código (RCE) do Wing FTP Server (CVE-2025-47812). Esta falha crítica permite que atacantes obtenham execução remota de código como root/SYSTEM nas instâncias afetadas do Wing FTP Server, mesmo com acesso anônimo habilitado.
Esta vulnerabilidade origina-se do tratamento inadequado de bytes NULL pelo Wing FTP Server no parâmetro de nome de usuário durante o processo de autenticação. Isso permite que atacantes injetem código Lua diretamente nos arquivos de sessão. Esses arquivos de sessão maliciosos são então executados quando uma sessão válida é carregada, levando à execução arbitrária de comandos no servidor.
Principais características deste exploit incluem:
Esta ferramenta é destinada estritamente para fins educacionais e de teste de penetração autorizado. O autor não se responsabiliza por qualquer mau uso ou dano causado por este software. Sempre garanta que você tem permissão explícita e por escrito antes de realizar qualquer teste em um sistema.
Esta vulnerabilidade foi descoberta e documentada em detalhes por Julien (@MrTuxracer). Veja o artigo original:
What the NULL?! Wing FTP Server RCE (CVE-2025-47812)
A vulnerabilidade CVE-2025-47812 é um problema crítico decorrente de múltiplas fragilidades na forma como o Wing FTP Server gerencia a autenticação e sessões de usuários:
c_CheckUser(): A função c_CheckUser(), responsável pela autenticação do usuário, internamente usa strlen() no nome de usuário fornecido. Quando um byte NULL (%00) é injetado no nome de usuário (ex.: anonymous%00...), strlen() trunca a string nesse ponto. Isso significa que a autenticação é bem-sucedida para a parte do nome de usuário antes do byte NULL, efetivamente contornando a validação adequada.rawset(_SESSION, "username", username) dentro de loginok.html usa o nome de usuário completo e não sanitizado diretamente dos parâmetros GET ou POST. Isso inclui o byte NULL e quaisquer caracteres subsequentes.anonymous%00]]%0dlocal+h+%3d+io.popen("id")%0dlocal+r+%3d+h%3aread("*a")%0dh%3aclose()%0dprint(r)%0d--) resulta na escrita deste código malicioso diretamente no arquivo de sessão.SessionModule.load(), invocada quando qualquer funcionalidade autenticada (como /dir.html) é acessada, executa diretamente o arquivo de sessão usando loadfile(filepath) seguido de f(). Esta etapa crucial aciona o código Lua injetado, levando à Execução Remota de Código.Esta vulnerabilidade é particularmente grave porque o Wing FTP Server frequentemente executa com privilégios de root no Linux ou privilégios de SYSTEM no Windows por padrão. Esta configuração padrão concede aos atacantes o máximo controle sobre o sistema comprometido após a exploração bem-sucedida.
Versões Afetadas: As versões do Wing FTP Server anteriores à 7.4.4 são vulneráveis.
Este script suporta vários argumentos de linha de comando para personalizar sua funcionalidade.
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
