CVE-2021-46080
Titre de l'exploit : Vehicle Service Management System - Multiples falsifications de requête intersite (CSRF) menant à un script intersite stocké (XSS)
Auteur de l'exploit : SANU P.L
CVE : CVE-2021-46080
CVSS : 4.8 MOYEN
Références :
Description :
Une vulnérabilité de falsification de requête intersite (CSRF) existe dans Vehicle Service Management System 1.0. Une attaque CSRF réussie conduit à une vulnérabilité de script intersite stocké.
1. Vehicle Service Management System - 'Liste des mécaniciens' (/admin/?page=mechanics)
Exploit :
- Visitez le panneau d'administration http://localhost/vehicle_service/admin
- Créez deux comptes administrateur.
- Connectez-vous avec le compte Admin-1 dans le navigateur A (Chrome)
- Connectez-vous avec le compte Admin-2 dans le navigateur B (Firefox)
- Dans le compte Admin-1 (Chrome), accédez à la section Liste des mécaniciens et cliquez sur le bouton Créer nouveau.
- Injectez la charge utile ci-dessous dans le champ Nom complet.
Charge utile :
"><script>alert(document.cookie)</script>
- Cliquez sur le bouton Enregistrer.
- Capturez la requête dans BurpSuite et générez le fichier HTML CSRF.
- Enregistrez le fichier HTML CSRF, par exemple : CSRF.html
- Dans le navigateur B (Firefox), parcourez le fichier CSRF.html.
- Accédez à la section Liste des mécaniciens dans le navigateur B (Firefox).
- Le code JavaScript malveillant est déclenché.
2. Vehicle Service Management System - 'Demandes de service' (/admin/?page=service_requests)
Exploit :
- Visitez le panneau d'administration http://localhost/vehicle_service/admin
- Créez deux comptes administrateur.
- Connectez-vous avec le compte Admin-1 dans le navigateur A (Chrome)
- Connectez-vous avec le compte Admin-2 dans le navigateur B (Firefox)
- Dans le compte Admin-1 (Chrome), accédez à la section Demandes de service et cliquez sur le bouton Créer nouveau.
- Injectez la charge utile ci-dessous dans le champ Contact propriétaire.
Charge utile :
"><script>alert(document.cookie)</script>
- Cliquez sur le bouton Enregistrer la demande.
- Capturez la requête dans BurpSuite et générez le fichier HTML CSRF.
- Enregistrez le fichier HTML CSRF, par exemple : CSRF.html
- Dans le navigateur B (Firefox), parcourez le fichier CSRF.html.
- Accédez à la section Demandes de service dans le navigateur B (Firefox).
- Choisissez la demande de service nouvellement créée et cliquez sur Action sous Afficher.
- Le code JavaScript malveillant est déclenché.
3. Vehicle Service Management System - 'Liste des catégories' (/admin/?page=maintenance/category)
Exploit :
- Visitez le panneau d'administration http://localhost/vehicle_service/admin
- Créez deux comptes administrateur.
- Connectez-vous avec le compte Admin-1 dans le navigateur A (Chrome)
- Connectez-vous avec le compte Admin-2 dans le navigateur B (Firefox)
- Dans le compte Admin-1 (Chrome), accédez à la section Liste des catégories et cliquez sur le bouton Créer nouveau.
- Injectez la charge utile ci-dessous dans le champ Nom de catégorie.
Charge utile :
"><script>alert(document.cookie)</script>
- Cliquez sur le bouton Enregistrer.
- Capturez la requête dans BurpSuite et générez le fichier HTML CSRF.
- Enregistrez le fichier HTML CSRF, par exemple : CSRF.html
- Dans le navigateur B (Firefox), parcourez le fichier CSRF.html.
- Accédez à la section Liste des catégories dans le navigateur B (Firefox).
- Le code JavaScript malveillant est déclenché.
4. Vehicle Service Management System - 'Liste des services' (/admin/?page=maintenance/services)
Exploit :
- Visitez le panneau d'administration http://localhost/vehicle_service/admin
- Créez deux comptes administrateur.
- Connectez-vous avec le compte Admin-1 dans le navigateur A (Chrome)
- Connectez-vous avec le compte Admin-2 dans le navigateur B (Firefox)
- Dans le compte Admin-1 (Chrome), accédez à la section Liste des services et cliquez sur le bouton Créer nouveau.
- Injectez la charge utile ci-dessous dans le champ Nom du service.
Charge utile :
"><script>alert(document.cookie)</script>
- Cliquez sur le bouton Enregistrer.
- Capturez la requête dans BurpSuite et générez le fichier HTML CSRF.
- Enregistrez le fichier HTML CSRF, par exemple : CSRF.html
- Dans le navigateur B (Firefox), parcourez le fichier CSRF.html.
- Accédez à la section Liste des services dans le navigateur B (Firefox).
- Le code JavaScript malveillant est déclenché.
5. Vehicle Service Management System - 'Liste des utilisateurs' (/admin/?page=user/list)
Exploit :
- Visitez le panneau d'administration http://localhost/vehicle_service/admin
- Créez deux comptes administrateur.
- Connectez-vous avec le compte Admin-1 dans le navigateur A (Chrome)
- Connectez-vous avec le compte Admin-2 dans le navigateur B (Firefox)
- Dans le compte Admin-1 (Chrome), accédez à la section Liste des utilisateurs et cliquez sur le bouton Créer nouveau.
- Injectez la charge utile ci-dessous dans le champ Prénom.
Charge utile :
"><script>alert(document.cookie)</script>
- Cliquez sur le bouton Enregistrer.
- Capturez la requête dans BurpSuite et générez le fichier HTML CSRF.
- Enregistrez le fichier HTML CSRF, par exemple : CSRF.html
- Dans le navigateur B (Firefox), parcourez le fichier CSRF.html.
- Accédez à la section Liste des utilisateurs dans le navigateur B (Firefox).
- Le code JavaScript malveillant est déclenché.
6. Vehicle Service Management System - 'Paramètres' (/admin/?page=system_info)
Exploit :
- Visitez le panneau d'administration http://localhost/vehicle_service/admin
- Créez deux comptes administrateur.
- Connectez-vous avec le compte Admin-1 dans le navigateur A (Chrome)
- Connectez-vous avec le compte Admin-2 dans le navigateur B (Firefox)
- Dans le compte Admin-1 (Chrome), accédez à la section Paramètres.
- Injectez la charge utile ci-dessous dans le champ Nom du système.
Charge utile :
"><script>alert(document.cookie)</script>
- Cliquez sur le bouton Mettre à jour.
- Capturez la requête dans BurpSuite et générez le fichier HTML CSRF.
- Enregistrez le fichier HTML CSRF, par exemple : CSRF.html
- Dans le navigateur B (Firefox), parcourez le fichier CSRF.html.
- Accédez à la section Paramètres dans le navigateur B (Firefox).
- Le code JavaScript malveillant est déclenché.
Impact :
Une vulnérabilité de falsification de requête intersite existe sur plusieurs points de terminaison, ce qui conduit à une vulnérabilité de script intersite stocké.
Atténuation :
Il est recommandé de mettre en œuvre les éléments suivants :
- Un jeton imprévisible avec une entropie élevée, comme pour les jetons de session en général.
- Lié à la session de l'utilisateur.
- Strictement validé dans chaque cas avant que l'action concernée ne soit exécutée.