Joomla Password Reset 10 juillet 2009
Posted by Nassim in Mes créations.Tags: retrouver, modifier, joomla, password, mot, passe, passwd, reset, réinitialiser, oubli, perte, admin, mysql, python, jpr
trackback

Joomla est un CMS très connu et beaucoup utilisé sur la toile, si vous possédez vous même un site dynamique il est fort possible que vous soyez déjà utilisateur de cette application… et si vous êtes du genre brouillon ou tête en l’air, il est fort possible que vous ayez oublié ou perdu votre mot de passe administrateur.
Si cela vous est arrivé, vous avez probablement eu l’idée d’accéder à votre base de données via PhpMyAdmin pour y modifier directement votre mot de passe (une sorte de réinitialisation). Cette méthode marche très bien… enfin… sauf si vous utilisez Joomla 1.5 car depuis cette version il semblerait que les mots de passe stockés dans la base de données de Joomla soient couplés avec une clé générée aléatoirement.
Ainsi, si vous regardez l’attribut “password” de la table “jos_users” de Joomla (le préfixe jos pouvant varier), vous remarquerez que le mot de passe stocké est du style (ce n’est qu’un exemple) : ab4f63f9ac65152575886860dde480a1:0a5b3913cbc9a909
Il n’est donc pas possible de remplacer directement ce contenu par le hash MD5 du nouveau mot de passe que vous aimeriez mettre en place. Néanmoins, en étudiant le code de Joomla j’ai pu comprendre le fonctionnement de ce couple hash MD5:clé, cela ne m’a pas été compliqué de concevoir une application permettant de crypter de la même façon un nouveau mot de passe.
Ce petit logiciel que j’ai nommé Joomla Password Reset permet donc de crypter un mot de passe à la façon de Joomla dans le but de remplacer sa valeur directement dans la BD, cela permet de faire une réinitialisation en cas de perte, les plus vicieux auront compris que c’est aussi exploitable pour pirater un site à base de Joomla quand on a accès à la base de données (Je décline, d’ailleurs, toute responsabilité quant à l’utilisation de mon logiciel) .

JPR (Joomla Password Reset) est codé en Python, il vous faudra donc posséder l’interpréteur Python sur votre machine (Linux ou Windows) pour pouvoir l’exécuter, je tâcherai de mettre au point un exécutable “.exe” pour les utilisateurs de Windows (les moins débrouillards quoi !).
La version actuelle est une bêta mais elle est totalement fonctionnelle, j’attends d’ajouter une fonction de modification immédiate de la BD pour publier le logiciel en version 1, et par la même occasion, transmettre ses sources.
Liens de téléchargement :
http://www.zshare.net/download/62489772a0664847/
http://www.megaupload.com/?d=NQ5XQ5VY
Pour lancer l’application sous Linux :
python jpr.pyc
Veuillez utiliser cette application dans un cadre légal uniquement !!!
merci pour la qualité du billet et le travail qui est derrière.
Bonne continuation
Merci, ça peut servir .. même si je n’ai jamais touché à ce Joomla :)
Ca serait bien aussi que tu nous explques comment c’est fait à la Joomla : un truc à base de MD5 / SHAx … ? ça nous évitera de lire le source de ton outil et gagner du coup quelques minutes :)
PS: le temps passé à écrire ça ~= temps lecture source ? :)
@secdz : Pas de souci, je parlerai de ça dans un prochain billet, en fait, le petit truc utilisé par joomla n’est vraiment pas compliqué.
Pour ce qui est de la lecture des sources de mon programme, je dirais que :
1/ C’est du Python donc par définition c’est un code très bien indenté.
2/ Je suis de nature à commenter mes programmes.
3/ La bibliothèque graphique utilisée est Tkinter, elle est très simple et j’ai bien séparé les fonctions de traitement du code qui gère le “graphique”.
4/ Le programme peu de lignes.
Néanmoins, je vais parler de ça dans un prochain billet, pas de souci !
cool sahit havoc, tres bon billet.
continue comme ça.
[...] Joomla Password Reset [...]