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-13673 — CVE-2025-13673: PoC de inyección SQL en Tutor LMS + laboratorio Docker | Kitploit
Herramientas/GitHubGitHub/dinosn/cve-2025-13673
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónLabs y Práctica
GitHubdinosn/cve-2025-13673

CVE-2025-13673

CVE-2025-13673: PoC de inyección SQL en Tutor LMS + laboratorio Docker

Ver Repositorio
hace 2 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-13673 — Laboratorio de Inyección SQL de Tutor LMS

Inyección SQL no autenticada en el plugin de WordPress Tutor LMS (<= 3.9.6) mediante el parámetro coupon_code.

Inicio rápido

root@kitploit:~
# 1. Clone and start the lab
git clone https://github.com/dinosn/CVE-2025-13673.git
cd CVE-2025-13673
./setup.sh            # Deploys WordPress + Tutor LMS 3.9.3

# 2. Run the exploit
pip install requests   # only dependency

# Unauthenticated (time-based blind — no credentials needed)
python3 exploit.py http://localhost:8080

# Authenticated (UNION-based — instant extraction)
python3 exploit.py http://localhost:8080 -u testuser -p test123 --all

Detalles de la vulnerabilidad

CampoValor
CVECVE-2025-13673
AfectadoTutor LMS <= 3.9.6
Corregido3.9.7
TipoInyección SQL (CWE-89)
CVSS7.5 / 9.3
AutenticaciónNinguna (ciega) / Suscriptor (UNION)

Causa raíz

QueryHelper::prepare_where_clause() construye cláusulas SQL WHERE mediante concatenación de cadenas en bruto:

root@kitploit:~
// helpers/QueryHelper.php — VULNERABLE
$value = is_numeric( $value ) ? $value : "'" . $value . "'";

Sin escape. Una comilla simple rompe el literal y permite SQL arbitrario.

Vectores de ataque

No autenticado: POST / con tutor_action=tutor_pay_now. El hook init de WordPress lo despacha para todos los visitantes. El _tutor_nonce está integrado en cada página del frontend y es válido para sesiones anónimas. Extracción de datos mediante SLEEP().

Suscriptor+: POST /wp-admin/admin-ajax.php con action=tutor_apply_coupon. Devuelve JSON con datos UNION SELECT inyectados: dos columnas reflejadas en la respuesta para extracción instantánea.

Parche (3.9.7)

root@kitploit:~
- $val = is_numeric( $val ) ? $val : "'" . $val . "'";
+ // Value now passed through $wpdb->prepare('%s', $value)

Uso del exploit

root@kitploit:~
usage: exploit.py [-h] [-u USERNAME] [-p PASSWORD] [--course-id COURSE_ID]
                  [--dump-users] [--db-info] [--options] [--all]
                  [--delay DELAY]
                  url

Modes:
  Default (no -u/-p):  Unauthenticated time-based blind SQLi
  With -u/-p:          Authenticated UNION-based (fast)

Examples:
  exploit.py http://target                            # unauth blind
  exploit.py http://target -u student -p pass --all   # auth UNION

Prueba de diferentes versiones

root@kitploit:~
# Test version 3.9.5 (has esc_sql partial mitigation)
./setup.sh 3.9.5

# Test version 3.9.7 (should be fixed)
./setup.sh 3.9.7

Archivos

ArchivoDescripción
exploit.pyPoC de doble modo: blind no autenticado + UNION autenticado
setup.shDespliegue del laboratorio con un comando
docker-compose.ymlWordPress 6.7 + MySQL 8.0

Referencias

  • Aviso de Wordfence
  • Aviso de Patchstack

Descargo de responsabilidad

Solo para pruebas de seguridad autorizadas y fines educativos.

Descargar herramienta