
Exploit Python pour CVE-2019-9053 ciblant CMS Made Simple avec détection d'injection SQL et craquage de hachage de mot de passe via une liste de mots, avec argparse et une gestion améliorée des erreurs.
Corrigé grâce à https://tryhackme.com/room/easyctf :) amusez-vous bien
Problèmes critiques corrigés
Compatibilité Python 2 vers Python 3 Ancien : print "string" Nouveau : print("string") Modifié toutes les instructions print en fonctions print() Mise à jour du formatage des chaînes pour utiliser les f-strings
Bibliothèque optparse obsolète Ancien : import optparse Nouveau : import argparse Remplacement complet du système d'analyse des options par argparse moderne Ajout d'un texte d'aide approprié et de valeurs par défaut
Problèmes de formatage des chaînes Ancien : concaténation de chaînes et ancien formatage % Nouveau : f-strings partout (f"string {variable}") Plus lisible et efficace
Risque de boucle infinie Ancien : une variable globale drapeau pouvait causer des boucles infinies Nouveau : la boucle s'arrête lorsqu'aucun caractère correspondant n'est trouvé Meilleure logique de flux de contrôle
Gestion des erreurs Ancien : aucune gestion des erreurs pour les requêtes réseau ou les opérations sur les fichiers Nouveau : ajout de blocs try-except pour :
Organisation du code Ancien : script procédural avec variables globales Nouveau : approche orientée objet avec la classe CMSMSExploit Meilleur encapsulage Plus facile à maintenir et à déboguer Composants réutilisables
Conversion hexadécimale Ancien : hex(ord(char))[2:] - sujet à des problèmes d'encodage Nouveau : format(ord(char), 'x') - plus propre et plus fiable
Améliorations supplémentaires Ajout du paramètre --time pour des délais configurables (défaut : 1 seconde) Meilleure sortie terminal avec une fonction d'effacement d'écran Retour de progression tous les 100 mots pendant le craquage Délai d'attente approprié pour les requêtes HTTP (10 secondes) Support de l'encodage UTF-8 pour la lecture de la liste de mots Meilleure information d'aide/utilisation