
Exploit de prueba de concepto para CVE-2026-63030 (RCE pre-autenticación en WordPress) con detección de inyección SQL, extracción de credenciales e implementación de webshell. Incluye flujo de explotación de 8 etapas y guía de remediación.
📖 Lee primero el análisis técnico completo: CVE-2026-63030: Explicación del RCE Pre-Autenticación en WordPress
Este repositorio contiene el exploit de prueba de concepto al que se hace referencia en ese artículo. Empieza con el blog para comprender la vulnerabilidad, las limitaciones y el proceso de reproducción.
| Aspecto | Detalles |
|---|
| Vulnerabilidad | CVE-2026-63030 (confusión de rutas) + CVE-2026-60137 (inyección SQL) |
| Tipo | Ejecución remota de código previa a la autenticación |
| Puntuación CVSS | 9.8 (Crítica) |
| Versiones afectadas | WordPress 6.9.0–6.9.4, 7.0.0–7.0.1 |
| Corregida en | WordPress 6.9.5, 7.0.2+ |
| Impacto | Más de 500M de sitios WordPress potencialmente afectados |
| Requisitos previos | Ninguno — funciona en instalaciones estándar de WordPress |
Este repositorio contiene:
wordpress-rest-exploit.py — Herramienta de explotación Python de un solo archivo (1.005 líneas, sin dependencias)README.md — Este archivo con la configuración y el usoPOC.md — Guía detallada de reproducción paso a paso con ejemplos realesLICENSE — Licencia MITAntes de usar este exploit, comprende la limitación crítica que hace que esta vulnerabilidad sea diferente de cómo ha sido reportada:
La cadena de vulnerabilidades es real y crítica. Sin embargo:
¿Por qué? WordPress permite prefijos personalizados para las tablas de la base de datos. El predeterminado es wp_, pero la mayoría de los sitios endurecidos usan bw1w_, wordpress_ o cadenas aleatorias. Sin conocer el prefijo, la extracción de hashes falla silenciosamente.
El artículo del blog explica:
./wordpress-rest-exploit.py
La herramienta te guiará a través de:
CVE-2026-63030: WordPress REST Batch Route-Confusion SQLi
------------------------------------------------------------
Target URL: https://example.com/
[*] Checking if target is vulnerable to CVE-2026-63030...
[+] WordPress 7.0 detected (AFFECTED VERSION)
[+] VULNERABLE - batch route-confusion behavior confirmed
What would you like to do?
1) Read database fingerprint
2) Extract WordPress user logins and password hashes
3) Execute custom SQL query
4) Deploy plugin webshell (requires admin credentials)
5) Confirm SQL injection with timing payload
6) Exit
Select option [1]:
Es esencial comprender esto antes de usar el exploit.
WordPress permite prefijos personalizados para las tablas de la base de datos como medida de endurecimiento. La herramienta de explotación no puede detectar automáticamente el prefijo.
✅ Default prefix (wp_): Exploitation works
❌ Custom prefix (bw1w_, etc.): Exploitation fails silently
Cuando la herramienta pregunte por el prefijo de tabla:
Opción 1: Conoces el prefijo
Database table prefix [wp_]: bw1w_
[+] Querying bw1w_users...
[+] Found credentials!
Opción 2: Adivina prefijos comunes
wp_ (predeterminado)wordpress_bw1w_ (endurecimiento popular)wpdb_Opción 3: Acceso directo
Si tienes acceso SSH o puedes leer wp-config.php:
$table_prefix = 'bw1w_'; // Found it!
Opción 4: Fuerza bruta vía SQLi La herramienta puede probar prefijos comunes mediante inyección SQL ciega (lenta pero posible).
SLEEP(3)wp_users (o con prefijo personalizado)Para una reproducción detallada con salida real de comandos y ejemplos, consulta:
👉 POC.md — Recorrido completo de las 8 etapas
Esta guía incluye:
Actualiza de inmediato (máxima prioridad):
# Update to patched versions
WordPress 7.0.2 or 6.9.5
Si la actualización inmediata no es posible:
Bloquea el endpoint de batch en el WAF/proxy inverso:
Block: /wp-json/batch/v1
Block: /?rest_route=/batch/v1
O desactiva la API REST por completo (menos ideal):
// Add to wp-config.php or mu-plugins
add_filter('rest_endpoints_enabled', '__return_false');
O exige autenticación:
add_filter('rest_pre_dispatch', function($response) {
if (strpos($_SERVER['REQUEST_URI'], '/batch/v1') !== false) {
if (!is_user_logged_in()) {
return new WP_Error('rest_batch_unauthenticated', 'Forbidden', ['status' => 401]);
}
}
return $response;
}, 10, 1);
| Hallazgo | Impacto |
|---|---|
| La detección de la vulnerabilidad funciona perfectamente | Fácil de identificar sitios afectados |
| La inyección SQL es fiable | El acceso a la base de datos está garantizado (si se conoce el prefijo) |
| El prefijo de tabla es el cuello de botella | El 70% de los sitios en producción están protegidos |
| La SQLi ciega es lenta | Más de 30 minutos para una extracción completa |
| El RCE post-autenticación funciona sin problemas | Compromiso total del sistema una vez autenticado |
| El RCE pre-autenticación no divulgado | Searchlight Cyber no publicó la técnica |
Solo para pruebas de seguridad autorizadas. Úsalo exclusivamente contra sistemas que poseas o para los que tengas permiso explícito por escrito para probar. No se proporciona ninguna garantía y no se acepta ninguna responsabilidad por el mal uso.
Investigación y Desarrollo: Easin Arafat
GitHub: @mrx-arafat
Sitio web: arafatops.com
Esta prueba de concepto demuestra la cadena de vulnerabilidades wp2shell de WordPress con técnicas de explotación prácticas, detección de vulnerabilidades y resultados de pruebas del mundo real. Empieza con el artículo del blog para comprender el contexto completo.
Última actualización: Julio de 2026
Licencia: MIT