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
CVE-2026-60137 — wpsqli full SQLi extractor + dumper for CVE-2026-60137 | Kitploit
Herramientas/GitHubGitHub/adarshthakur14777-cyber/cve-2026-60137
Password AttacksVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringWeb SecurityPenetration TestingDatabase Security

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
adarshthakur14777-cyber/cve-2026-60137

CVE-2026-60137

wpsqli full SQLi extractor + dumper for CVE-2026-60137

Ver Repositorio
hace 17 díasAún no revisado

wpsqli - Extractor SQLi de WordPress (CVE-2026-60137)

Una herramienta rápida de extracción de bases de datos basada en menús que explota la vulnerabilidad de inyección SQL author__not_in en el núcleo de WordPress. Esta herramienta se centra exclusivamente en la enumeración y el volcado de bases de datos, utilizando la confusión de rutas del endpoint REST por lotes (CVE-2026-63030) para alcanzar el sumidero SQLi sin autenticación.


Tabla de Contenidos

  • Descripción General
  • Cadena de Vulnerabilidades
  • Versiones Afectadas
  • Características
  • Instalación
  • Uso
  • Opciones del Menú
  • Modos de Extracción
  • Rendimiento
  • Aviso Legal

Descripción General

wpsqli es una herramienta escrita en Python puro diseñada para explotar una vulnerabilidad encadenada en el núcleo de WordPress que permite una inyección SQL no autenticada en la base de datos. Evita la validación de la API REST de WordPress mediante un error de confusión en las rutas del endpoint por lotes, enviando una cadena de carga útil cruda directamente al sumidero SQL de WP_Query.

Esta herramienta está diseñada para ser rápida y flexible: intenta automáticamente la extracción in-band basada en UNION (instantánea), recurre a la extracción boolean-blind paralela con 8 hilos y, finalmente, a la extracción secuencial basada en tiempo si es necesario.


Cadena de Vulnerabilidades

Esta herramienta encadena dos vulnerabilidades independientes para lograr la extracción no autenticada de la base de datos:

Bug A — Inyección SQL en author__not_in (CVE-2026-60137)

Ubicación: wp-includes/class-wp-query.php, WP_Query::get_posts()

El parámetro author__not_in solo aplica la sanitización absint() si la entrada es un array. Si se pasa una cadena, se omite la comprobación is_array(), la cadena pasa a través de implode() sin cambios y se concatena cruda en la cláusula SQL $where.

root@kitploit:~
// Línea 2404: la comprobación solo se activa para ARRAYS
if ( is_array( $query_vars['author__not_in'] ) ) {
    $query_vars['author__not_in'] = array_unique( array_map( 'absint', $query_vars['author__not_in'] ) );
    sort( $query_vars['author__not_in'] );
}
// Línea 2408: la cadena pasa directamente
$author__not_in = implode( ',', (array) $query_vars['author__not_in'] );
// Línea 2409: interpolación cruda
$where .= " AND {$wpdb->posts}.post_author NOT IN ($author__not_in) ";

Bug B — Confusión de Rutas en el Endpoint REST por Lotes (CVE-2026-63030)

El endpoint de entradas de la API REST asigna author_exclude a author__not_in, pero lo declara como type => 'array' de enteros, por lo que el núcleo coacciona/rechaza una cadena. El Bug B introduce de contrabando la cadena más allá de la validación abusando de un error de desincronización en el endpoint por lotes de REST (/wp-json/batch/v1). Al inyectar un iniciador de ruta malformado que wp_parse_url() rechaza, se introduce un WP_Error en la lista de solicitudes del lote, desincronizando $matches de $validation. Esto permite que una sub-solicitud posterior se envíe bajo el manejador incorrecto sin validación de parámetros.


Versiones Afectadas

Advertencia: El sumidero SQLi solo se alcanza cuando NO se utiliza una caché de objetos persistente (Redis/Memcached).


Características

  • Sin Dependencias: Biblioteca estándar pura de Python. No se requiere pip install.
  • Extracción en Tres Niveles:
    • Basada en UNION: Forja una fila falsa de wp_posts para extraer cadenas completas en una única solicitud HTTP (instantánea).
    • Boolean-blind (Paralela): Si UNION está bloqueada por la caché de objetos, utiliza 8 hilos paralelos con búsqueda binaria para extraer ~7 solicitudes por carácter.
    • Basada en Tiempo (Secuencial): Respaldo si el oráculo booleano no devuelve filas.
  • Enumeración Completa: Lista bases de datos, tablas y columnas.
  • Volcado de Tablas: Volcado de tablas individuales, de todas las tablas de una base de datos o un volcado nuclear completo a un archivo de texto con marca de tiempo.
  • Interrupción Controlada: Ctrl+C durante la extracción detiene la consulta actual y devuelve resultados parciales sin bloquear la sesión.
  • Persistencia de Sesión: Conéctese una vez y ejecute múltiples consultas mediante el menú interactivo.
  • Sanitización de URLs: Elimina automáticamente rutas/consultas de la entrada del host para evitar la duplicación del endpoint.
  • Resultados Listos para el Descifrado: Los volcados de usuarios incluyen el formato ID|user_login|user_pass con hashes bcrypt listos para hashcat -m 35500.

Instalación

No se requiere instalación. Solo descargue y ejecute:

root@kitploit:~
# Clonar el repositorio
git clone https://github.com/AdarshThakur14777-cyber/CVE-2026-60137.git
# Navegar al directorio
cd CVE-2026-60137

# Ejecutar
python main.py

Requisitos:

  • Python 3.8+
  • No se necesitan paquetes externos (solo biblioteca estándar)

Uso

Lance el menú interactivo:

root@kitploit:~
python main.py

Ejemplo de Sesión

root@kitploit:~
============================================================
  WP SQLi Extractor v3 (CVE-2026-60137)
============================================================
------------------------------------------------------------
  CONEXIÓN
   0. Conectar / Cambiar objetivo
   1. Comprobar objetivo (versión + confirmación de vulnerabilidad)
------------------------------------------------------------
  HUELLA DIGITAL
   2. Versión de MySQL (@@version)
   3. Nombre de la base de datos actual
   4. Usuario actual de la base de datos
   5. Prefijo de tablas de WordPress
   6. Volcar wp_users (ID, login, hash de contraseña)
   7. Consulta SQL personalizada
   8. Extraer todas las huellas digitales (2+3+4+5)
------------------------------------------------------------
  ENUMERACIÓN
   9. Listar todas las bases de datos
  10. Listar todas las tablas (base de datos actual)
  11. Listar columnas de una tabla
------------------------------------------------------------
  VOLCADO
  12. Volcar una tabla específica
  13. Volcar todas las tablas (base de datos actual)
  14. Volcado completo a archivo (todas las tablas + todas las filas)
------------------------------------------------------------
  15. Salir
============================================================

Elección: 0
Objetivo (https://example.com): https://target.com
¿Omitir verificación TLS? (s/N):
Retardo de espera para basado en tiempo (por defecto 3):

[*] Conectando a https://target.com ...
[+] Endpoint por lotes: https://target.com/wp-json/batch/v1
[*] Versión de WordPress: 6.9.4 VULNERABLE
[*] Probando extracción basada en UNION ...
[!] UNION no disponible — probando boolean blind (8 hilos paralelos) ...
[+] Modo boolean-blind activo (8 hilos, ~7 solicitudes/carácter)
[+] Basado en tiempo también funciona (0.69s vs 3.78s)

Opciones del Menú

Conexión

OpciónDescripción
0Conectar a un objetivo (sanitiza las URLs automáticamente)
1Verificar la vulnerabilidad y el modo de extracción activo

Huella Digital

Enumeración

OpciónDescripción
9Listar todas las bases de datos en el servidor MySQL
10Listar todas las tablas en la base de datos actual o especificada
11Listar todos los nombres de columna de una tabla específica

Volcado

OpciónDescripción
12Volcar una sola tabla (con límite de filas opcional y guardado en archivo)
13Volcar todas las tablas en la base de datos actual
14Volcado nuclear completo — todas las tablas + todas las filas a un archivo con marca de tiempo

Modos de Extracción

La herramienta intenta automáticamente tres modos de extracción en orden de velocidad:

1. Basado en UNION (Instantáneo)

Forja una fila falsa de wp_posts con el valor extraído codificado en hexadecimal en la columna post_title (envuelto en marcadores ||..||). La API REST lo refleja en la respuesta — la cadena completa en una única solicitud HTTP.

  • 1 solicitud por consulta
  • Funciona solo cuando no hay una caché de objetos persistente activa
  • Usa CONCAT(0x7c7c, HEX(CAST((<expr>) AS CHAR)), 0x7c7c) para codificar el resultado

2. Boolean-Blind (Paralela)

Si UNION no está disponible, usa 8 hilos paralelos con búsqueda binaria para extraer cada carácter. El oráculo booleano comprueba si la condición inyectada AND (condition) devuelve filas.

  • ~7 solicitudes por carácter (paralelizadas en 8 hilos)
  • Búsqueda binaria en el rango ASCII 32-126
  • Pre-escaneo de la longitud de la cadena mediante búsqueda binaria antes de la extracción
  • Progreso mostrado como caracteres completados

3. Basado en Tiempo (Secuencial)

Respaldo si el oráculo booleano no devuelve filas (por ejemplo, un sitio sin entradas publicadas). Usa IF(condition, SLEEP(N), 0) para codificar la verdad en la latencia de la respuesta.

  • ~7 × segundos de espera por carácter (secuencial)
  • Modo más lento, pero funciona en bases de datos vacías

Rendimiento

Ejemplo de Tiempos (Boolean, 8 hilos)


Aviso Legal

Esta herramienta está diseñada únicamente para pruebas de seguridad autorizadas y fines educativos. Solo debe usar esta herramienta contra sistemas que le pertenezcan o para los que tenga permiso explícito por escrito. El acceso no autorizado a sistemas informáticos es ilegal.

Los autores y colaboradores de esta herramienta no son responsables de ningún uso indebido o daño causado por este software. Úsela bajo su propio riesgo.


Créditos

  • Cadena de vulnerabilidades descubierta por Adam Kues (Assetnote / Searchlight Cyber)
  • Técnica de entrada falsa UNION: sergiointel/wp2shell-poc (originador)
  • Implementación adaptada de: Icex0/wp2shell-poc
  • Técnica de detección de confusión de rutas: Hadrian / Icex0

Licencia

Esta herramienta se proporciona únicamente con fines educativos y de pruebas autorizadas.

Descargar herramienta
Rango de VersionesEstado
6.8.0 – 6.8.5Bug SQLi presente, pero la cadena NO es alcanzable (la confusión por lotes se introdujo en 6.9.0)
6.9.0 – 6.9.4VULNERABLE — cadena completa sin autenticación
7.0.0 – 7.0.1VULNERABLE — cadena completa sin autenticación
6.8.6Parcheado (SQLi)
6.9.5Parcheado
7.0.2Parcheado
7.1-beta2+Parcheado
OpciónDescripción
2Extraer la versión de MySQL (SELECT @@version)
3Extraer el nombre de la base de datos actual (SELECT DATABASE())
4Extraer el usuario actual de la base de datos (SELECT CURRENT_USER())
5Extraer el prefijo de tablas de WordPress
6Volcar la tabla wp_users (ID, login, hash de contraseña)
7Ejecutar una consulta SQL personalizada
8Ejecutar todas las huellas digitales (opciones 2-5) en secuencia
ModoSolicitudes por ConsultaVelocidadCuándo se Usa
UNION1InstantáneaSin caché de objetos, el recuento de columnas coincide
Boolean (8 hilos)~7 × longitud_cadena / 8RápidaUNION bloqueada, hay filas
Basado en tiempo~7 × espera × longitud_cadenaLentaSin filas para el oráculo booleano
ExtracciónCaracteresSolicitudesTiempo
Versión de MySQL~20~140~15s
Nombre de la base de datos~15~105~12s
Usuario de la base de datos~25~175~20s
Prefijo de tablas~5~35~5s
Fila de wp_users (200 caracteres)200~1400~2min