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
WPSniper — Detector de CVE-2026-87902. Classe LFI get_page_template do WordPress. Apenas detecção. Laboratório autorizado. | Kitploit
Ferramentas/GitHubGitHub/ynsmroztas/wpsniper
ReconhecimentoScanners de VulnerabilidadesScanners de Vulnerabilidades WebAnálise de VulnerabilidadesColeta de InformaçõesSegurança WebTestes de Penetração
GitHubynsmroztas/wpsniper

WPSniper

Detector de CVE-2026-87902. Classe LFI get_page_template do WordPress. Apenas detecção. Laboratório autorizado.

Ver Repositório
323há 22 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 →
Compartilhar

WPSniper — detector CVE-2026-87902

WPSniper

Detector de CVE-2026-87902 para o WordPress Core.

get_page_template() pode ser direcionado de forma que a resolução do template de página inclua um arquivo .php local legível fora do tema ativo. O WPSniper faz fingerprint do site, escolhe um page_id publicado, sonda a classe de inclusão e só imprime VULN quando um banner PEAR forte é exclusivo do corpo da sondagem.

Apenas deteção. Sem webshell. Sem pearcmd config-create. Sem execução de comandos do sistema operativo.

python3 WPSniper.py -u https://lab.wordpress.local --shell

Pipeline:

subfinder -d lab.example -silent | httpx -silent | python3 WPSniper.py -t 8

Âmbito escrito. Laboratório próprio. Essa é toda a licença para o executar.


Sessão de laboratório WPSniper censurada

Classe

O WordPress constrói o nome do template de página a partir da variável de consulta pagename, derivada do URL e descodificada:

page-{$pagename}.php

locate_template() inclui então esse arquivo. Em builds afetadas, o caminho resolvido não é forçado a permanecer dentro de um diretório de tema permitido. Um traversal com dupla codificação em pagename sobrevive ao sanitize_title o suficiente para que get_page_template() o descodifique uma vez e saia da árvore de temas.

Duas pré-condições estão à frente de uma inclusão fechada:

  1. O tema pai ou filho ativo tem um diretório de nível superior cujo nome começa por page- (o WordPress documenta page-templates/ — Twenty Twelve, Twenty Fourteen, Neve, Hestia, Sydney e outros).
  2. Existe um alvo .php legível para a conta do servidor web. O detector usa banners padrão do PEAR CLI como oráculo de inclusão. Não escreve nenhum.

RCE é um seguimento possível quando essas condições, mais um gadget gravável/executável, se alinham. Esse seguimento não está neste repositório.

Crédito do descobridor na CVE: Robert (ressl) via WordPress HackerOne. Aviso: GHSA-7hp8-65ch-5whp.


Fluxo de deteção do WPSniper

O que o operador faz

PassoAçãoSinal
1Home + generator + /feed/WordPress? versão? slug do tema?
2REST /wp-json/wp/v2/pages ou page_id= no HTMLUma página publicada para que o caminho do template seja realmente executado
3GET /wp-content/themes/{slug}/page-templates/200 / 401 / 403 = o diretório existe
4Baseline ?page_id=N vs sondagem pagename=Digest do corpo + tokens PEAR fortes exclusivos

A tabela de versões está incorporada. 4.7.0–7.1.1 são a janela afetada. Pontos corrigidos: 7.1.2, 7.0.6, 6.9.9, 6.8.10 … até 4.7.37.

Regra de confirmação

Uma página de marketing que diz "pearcmd" num artigo de blog não é um hit.

VULN apenas quando tudo isto é verdadeiro:

  • Digest do corpo da sondagem ≠ digest do baseline ?page_id=
  • Pelo menos um token forte é exclusivo da sondagem (PEAR Version:, Usage: pear, PEAR_Config, Commands for pear, config-create, DEPRECATED: PEAR commands, pear.php)
  • O token fraco pearcmd / PEAR sozinho é descartado, especialmente se já estava no HTML do baseline

INFO = versão afetada e/ou diretório page-templates, inclusão não fechada. Não abra um crítico com base em INFO.

SAFE = ramo corrigido, ou inclusão idêntica ao baseline.

SKIP = não é WordPress, URL inválido.

/etc/passwd é o oráculo errado para esta CVE. locate_template() acrescenta .php. O comando interativo passwd existe para que possa ver isso por si mesmo. O aparecimento de uma estrofe root:x:0:0: é invulgar e deve ser verificado manualmente.

Instalação

python3 -m pip install -r requirements.txt
python3 WPSniper.py -u https://lab.wordpress.local

Requer requests.

Flags

FlagSignificado
-u URLAlvo único
-l fileLista de URLs
stdinsubfinder | httpx | WPSniper
-t NThreads numa lista (predefinição 6)
-qLinhas silenciosas + resumo
--shellSondagem interativa num único -u
--timeoutSegundos (predefinição 14)

--shell é ignorado num pipeline. Isso é intencional.

Shell interativa

python3 WPSniper.py -u https://lab.wordpress.local --shell
[email protected] ▶
  1 fp        version / theme / patched?
  2 pages     REST published pages
  3 theme     page-templates directory
  4 probe     PEAR include + baseline diff   (no write)
  5 diff      same, print Δ + tokens
  6 passwd    try …/etc/passwd               (this class includes *.php)
  7 include P include a .php path without suffix
  8 save      last body → /tmp/wpsniper-probe.html
  9 help
  0 exit

Cada sondagem imprime o URL completo e um curl pronto a copiar. Use isso no relatório. Não invente um segundo pedido.

7 include destina-se a um arquivo de laboratório autorizado que já colocou. O nome de exemplo no texto de ajuda é um marcador de testemunho, não um dropper.

Sessão de laboratório (censurada)

WPSniper v1.3   CVE-2026-87902  get_page_template LFI
[radar] target  https://lab.wordpress.local
[radar] generator=6.8.3  theme=twentytwelve  status=affected
[radar] page_id=2
[radar] theme dir /wp-content/themes/twentytwelve/page-templates/ → 403

VULN  lab.wordpress.local  unique=['PEAR Version:','Usage: pear'] Δlen=+18420

patched  7.1.2 · 7.0.6 · 6.8.10 · backports to 4.7.37

O host nesta página é um rótulo de laboratório. Nomes de hosts de clientes reais não pertencem a uma captura pública.

Correção

Atualize para 7.1.2 ou o backport para o seu ramo:

7.0.6 · 6.9.9 · 6.8.10 · 6.7.9 · 6.6.9 · 6.5.12 · 6.4.12 · 6.3.12 · 6.2.13 · 6.1.14 · 6.0.16 · 5.9.18 … até 4.7.37.

O 7.1.2 também exige que o caminho do template resolvido permaneça dentro de um diretório de tema permitido. Essa é a correção real, não uma regra de WAF.

O que este repositório não fará

  • Sem webshell, sem pearcmd config-create, sem wrapper system()
  • Sem playbook de varrimento massivo da internet
  • Sem afirmar que todas as máquinas WordPress 6.x são RCE
  • Sem /etc/passwd em bruto como confirmação primária

Se precisar de um achado: anexe o curl que o WPSniper já imprimiu, os tokens fortes exclusivos e a divergência de digest do baseline.

Aviso legal

Apenas testes de segurança autorizados. Executar isto contra um host que não possui ou para o qual não tem autorização por escrito é problema seu, não da ferramenta.

Ligações

  • Site: ynsmroztas.github.io
  • X: @ynsmroztas
  • CVE: CVE-2026-87902

mitsec · Yunus Emre Öztaş

Baixar ferramenta