
Exploit Magento Shoplift (SUPEE-5344) - CVE-2015-1397
Présentation
Ce script exploite la vulnérabilité CVE-2015-1397 dans Magento, communément appelée exploit Magento Shoplift. Il permet à un attaquant de créer un nouvel utilisateur administrateur dans la base de données Magento en injectant des charges utiles SQL.
Initialement écrit en Python par Manish Kishan Tanwar (error1046), cette version a été convertie en Bash avec des invites de saisie conviviales pour les identifiants par Divine Clown (0xDTC).
Fonctionnalités
- Invite d'identifiants : Demande dynamiquement l'URL cible, le nom d'utilisateur administrateur et le mot de passe.
- Gestion des erreurs : Fournit des messages d'erreur détaillés pour les entrées invalides, les échecs de requêtes réseau et les réponses serveur inattendues.
- Encodage Base64 : Encode dynamiquement les charges utiles pour le traitement de Magento.
- Expérience utilisateur simplifiée : Supprime la nécessité d'encoder manuellement les charges utiles ou d'utiliser des entrées statiques.
Prérequis
- Cible : L'installation de Magento doit être vulnérable à CVE-2015-1397.
- Environnement : Linux avec les utilitaires
bash, curl et base64 installés.
Utilisation
- Clonez le dépôt ou copiez le script sur votre système local.
- Rendez le script exécutable :
chmod +x CVE-2015-1397
- Exécutez le script :
./CVE-2015-1397
- Suivez les invites :
- Saisissez l'URL cible (ex.
http://target.com/).
- Saisissez le nouveau nom d'utilisateur administrateur.
- Saisissez le nouveau mot de passe administrateur.
- En cas de succès, le script affiche les nouvelles informations d'identification de l'administrateur.
Exemple
┌──(kali㉿kali)-[~/example]
└─$ ./CVE-2015-1397
Enter the target URL (e.g., http://target.com/): http://example.com/
Enter the new admin username: admin123
Enter the new admin password: pass123
[*] Sending payload to http://example.com/admin/Cms_Wysiwyg/directive/index/
[+] Exploit successful. Admin account created: admin123 / pass123
-
Validation des entrées :
- Vérifie que l'URL fournie commence par
http:// ou https://.
- Valide que le nom d'utilisateur et le mot de passe ne sont pas vides.
-
Construction de la charge utile :
- Construit un paramètre
___directive encodé en Base64 contenant une requête SQL pour insérer un nouvel utilisateur administrateur.
- Encode dynamiquement la requête SQL.
-
Exploitation :
- Envoie une requête
POST au point de terminaison vulnérable en utilisant curl.
- Utilise l'analyse des directives internes de Magento pour exécuter la charge utile SQL.
-
Gestion de la réponse :
- Vérifie la réponse du serveur pour des indicateurs de succès ou d'échec.
- Gère les erreurs courantes comme une URL invalide, une réponse vide ou des problèmes réseau.
Gestion des erreurs
- URL invalide : Vérifie que l'URL cible commence par
http:// ou https://.
- Entrées vides : Valide que ni le nom d'utilisateur ni le mot de passe ne sont vides.
- Problèmes réseau : Signale si la connexion à la cible échoue.
- Réponse serveur vide : Alerte l'utilisateur si le serveur ne renvoie aucune réponse.
- Échec de l'exploit : Affiche la réponse du serveur à des fins de débogage.
Avertissement légal
Ce script est destiné à des fins éducatives uniquement. Toute utilisation non autorisée contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation de tester est illégale et contraire à l'éthique. L'auteur et les contributeurs ne sont pas responsables de toute utilisation abusive de cet outil.
Remerciements
Remerciements particuliers à :
- Auteur du script Python original : Manish Kishan Tanwar (error1046)
- Chercheurs en sécurité et contributeurs de la communauté pour avoir documenté CVE-2015-1397.
Références