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
POC-WP-XSS2Shell-CVE-2026-64638 — PoC funcional do CVE-2026-64638 (XSS2Shell): cadeia pré-auth de XSS a RCE no WordPress Core. Laboratório Docker + servidor atacante Python + análise técnica e mitigação. | Kitploit
Ferramentas/GitHubGitHub/686f6c61/poc-wp-xss2shell-cve-2026-64638
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebAprendizado e EducaçãoDesenvolvimento de PayloadsLabs e Prática
GitHub686f6c61/poc-wp-xss2shell-cve-2026-64638

POC-WP-XSS2Shell-CVE-2026-64638

PoC funcional do CVE-2026-64638 (XSS2Shell): cadeia pré-auth de XSS a RCE no WordPress Core. Laboratório Docker + servidor atacante Python + análise técnica e mitigação.

Ver Repositório
12há 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

XSS2Shell — PoC da CVE-2026-64638

Prova de Conceito educativa da cadeia XSS2Shell (CVE-2026-64638), vulnerabilidade pré-autenticação XSS → RCE no WordPress Core descoberta de forma autônoma por pwn.ai e divulgada em 7 de agosto de 2026.


Índice

  1. Resumo executivo
  2. Aviso legal
  3. Arquitetura da cadeia
  4. Requisitos
  5. Estrutura do repositório
  6. Guia rápido de uso
  7. Verificação da exploração
  8. Documentação adicional

Resumo executivo

CVE-2026-64638 é uma vulnerabilidade do tipo cross-site scripting (XSS) refletido, pré-autenticação, na tela de login do WordPress (wp-login.php). Afeta todas as versões do WordPress em manutenção anteriores à 7.0.3, publicada em 6 de agosto de 2026 como security release de emergência. Foi atribuída a ela uma pontuação CVSS v4.0 de 8.9.

A cadeia denominada XSS2Shell demonstra como, partindo apenas de uma tentativa de login mal-sucedida com um username manipulado, um atacante pode:

  • Injetar elementos DOM vivos na página de login aproveitando uma discrepância entre dois analisadores sintáticos de PHP (strip_tags) e do WordPress (wp_kses_post).
  • Sequestrar o fluxo de execução do JavaScript do próprio WordPress (user-profile.js) para realizar uma requisição REST JSONP para a própria origem.
  • Converter a resposta JSONP em execução de JavaScript na origem do WordPress por meio de jQuery.globalEval().
  • Encadear tudo isso com a técnica Same Origin Method Execution (SOME) de Paulos Yibelo (2022) para clicar automaticamente no botão de aprovação de Application Passwords dentro da sessão autenticada de um administrador.
  • Capturar a credencial Application Password resultante, publicar uma página com JavaScript malicioso e, finalmente, fazer upload de um plugin em formato ZIP que executa PHP no servidor.
  • O resultado é execução remota de código (RCE) no servidor WordPress, sob o usuário do processo web (tipicamente www-data), partindo de um único clique do administrador em um link controlado pelo atacante.


    Aviso legal

    Este repositório contém material estritamente educativo e defensivo.

    • Propósito: demonstrar a cadeia de exploração para fins de treinamento, auditoria própria e validação de patches.
    • Uso autorizado: execute-o somente contra instalações do WordPress que pertençam a você ou sobre as quais você tenha autorização escrita explícita.
    • Proibido: qualquer uso contra sistemas de terceiros sem consentimento. O autor do repositório não se responsabiliza pelo uso indevido do material aqui incluído.
    • Responsabilidade: o operador é o único responsável pelo cumprimento da legislação aplicável (LOPD/RGPD na Espanha, CFAA nos EUA, etc.).

    A PoC é fornecida com um ambiente Docker autocontido cuja única finalidade é servir como alvo local e reproduzível.


    Arquitetura da cadeia

    root@kitploit:~
    ┌─────────────────────────────────────────────────────────────────────┐
    │  1. XSS pre-auth en wp-login.php                                    │
    │     log=< area id=ajaxurl href=/?rest_route=/&_jsonp=...>           │
    │     (discrepancia strip_tags ↔ wp_kses_post)                        │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  2. user-profile.js dispara .trigger('click')                       │
    │     DOM clobbering de ajaxurl → petición POST al origen             │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  3. REST JSONP responde application/javascript                      │
    │     jQuery.globalEval() ejecuta el callback en el origen WP         │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │  callback = window.opener
                                               │            .approve.click
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  4. SOME: click() cruza la frontera opener→admin                    │
    │     authorize-application.php#approve se pulsa en sesión admin      │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  5. WP crea Application Password → redirige a success_url           │
    │     El atacante captura user_login + password en callback.php       │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │  HTTP Basic REST
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  6. POST /wp-json/wp/v2/pages  → publica página con <script>        │
    │     El admin visita la página → JS en origen WP con sesión admin    │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  7. fetch update.php?action=upload-plugin  → sube payload.zip       │
    │     PHP del plugin es accesible directamente sin activarlo          │
    └──────────────────────────────────────────┬──────────────────────────┘
                                               │
                                               ▼
    ┌─────────────────────────────────────────────────────────────────────┐
    │  8. RCE confirmada: GET /wp-content/plugins/payload/shell.php       │
    └─────────────────────────────────────────────────────────────────────┘
    

    Requisitos

    A PoC foi construída para ser executada em macOS ou Linux com:

    • Docker 24+ e Docker Compose v2 (para o alvo local).
    • Python 3.9+ (para o orquestrador opcional).
    • PHP 8.1+ com extensão zip (para construir o payload manualmente, opcional; o ZIP já construído está incluído em payload/).
    • Um navegador moderno baseado em Chromium ou Firefox.

    Não é necessário instalar o WordPress manualmente: o docker-compose.yml sobe um WordPress 7.0.2 vulnerável (a última versão anterior ao patch) juntamente com MariaDB.


    Estrutura do repositório

    root@kitploit:~
    POC XSS2Shell (CVE-2026-64638)/
    ├── README.md                       ← Este archivo
    ├── docker-compose.yml              ← Blanco: WordPress 7.0.2 + MariaDB
    ├── .env.example                    ← Variables de configuración
    ├── exploit.py                      ← Orquestador en Python (opcional)
    ├── attacker/                       ← Infraestructura del atacante
    │   ├── index.html                  ← Página cebo con la cadena SOME
    │   ├── callback.php                ← Receptor de la Application Password
    │   └── server.py                   ← Servidor estático + PHP embebido
    ├── payload/                        ← Plugin ZIP malicioso
    │   ├── build_payload.py            ← Generador del ZIP
    │   ├── shell.php                   ← Webshell mínimo
    │   └── payload.zip                 ← ZIP preconstruido (listo para usar)
    └── docs/
        ├── ANALISIS.md                 ← Análisis técnico detallado
        └── MITIGACION.md               ← Guía de mitigación y hardening
    

    Guia rápido de uso

    1. Subir o alvo (WordPress 7.0.2 vulnerável)

    root@kitploit:~
    cp .env.example .env
    docker compose up -d
    

    O WordPress ficará acessível em http://localhost:8080. Siga o assistente de instalação e crie um usuário administrador (por exemplo, admin / admin-password).

    O Dockerfile ancora a imagem em wordpress:7.0.2-php8.2-apache, que é a última versão anterior ao patch 7.0.3.

    2. Subir a infraestrutura do atacante

    root@kitploit:~
    # En otro terminal, dentro de attacker/
    python3 server.py
    

    O servidor do atacante escuta em http://localhost:9000 e expõe:

    • / → index.html (a página isca).
    • /callback.php → receptor da Application Password.

    3. Simular o clique do administrador

    1. Faça login como administrador em http://localhost:8080/wp-admin.
    2. Na mesma sessão do navegador, abra uma nova aba e visite http://localhost:9000/.
    3. Você verá um único botão «Approve Application». Ao clicá-lo, toda a cadeia é executada automaticamente.

    4. Observar a captura de credenciais

    No terminal onde server.py está sendo executado, aparecerá uma linha do tipo:

    root@kitploit:~
    [+] Application Password recibida para el usuario 'admin':
        XXXX XXXX XXXX XXXX XXXX XXXX
    

    A credencial também é salva em attacker/captured_credentials.txt.

    5. Ver o RCE

    Após alguns segundos, o orquestrador de index.html terá:

    • Publicado uma página que executa JavaScript na origem do WordPress.
    • Feito o upload do plugin payload.zip para wp-content/plugins/payload/.

    Verifique a execução de código com:

    root@kitploit:~
    curl -sI http://localhost:8080/wp-content/plugins/payload/shell.php
    

    Um cabeçalho Hacked: true e um corpo JSON confirmam o RCE.


    Verificação da exploração

    Uma vez concluída a cadeia, os seguintes endpoints servem de evidência:

    RecursoEvidência esperada
    GET /wp-content/plugins/payload/shell.phpCabeçalho Hacked: true + JSON {"rce":true,"user":"www-data"}
    attacker/captured_credentials.txtApplication Password capturada
    wp-admin → Aplicativos → Senhas de aplicativoUma nova entrada chamada «SomeApp»

    Documentação adicional

    • docs/ANALISIS.md — Análise técnica detalhada de cada fase da cadeia, com referências ao código-fonte do WordPress.
    • docs/MITIGACION.md — Mitigações recomendadas, hardening e verificação do patch 7.0.3.

    Créditos

    • Pesquisa original e divulgação: pwn.ai — https://pwn.ai/blog/xss2shell
    • Técnica SOME subjacente: Paulos Yibelo (2022), publicada no blog da pwn.ai e nomeada para Top Web Hacking Techniques de 2022.
    • PoC e empacotamento deste repositório: trabalho próprio com fins educativos.

    Licença

    Distribuído sob licença MIT. Consulte o arquivo LICENSE para mais detalhes.

    Baixar ferramenta