Si vous utilisez Joomla! 1.5.x , et que vous avez pas mis à jour votre site avec la version 1.5.6 , soyez prudents , car vous pouvez être Piratés ( des pirates Polonais ont utilisé ce bug contre des sites turc et j'ai compris qu'ils ont utilisé l'injection SQL ) .
Cette faille de sécurité importantea été détectée dans Joomla le 12 Août 2008.Heureusement c'est corrigé trop vite (le même jour) , car c'est critique , puisque c'est directement relié à la réinitialisation du mot de passe des utilisateurs en particulier l'utilisateur qui a le plus petit ID , et c'est l'administrateur du site (dans la plupart des cas) .
Quelques information sur cette faille:
- Projet: Joomla!
- Sous-projet: com_user
- Gravité: Critique
- Versions: 1.5.5 et toutes les versions 1.5.x
- Type : Réinitialiser le mot de passe
- Date de Rapport: 12 Août 2008
- Date de la correction: 12 Août 2008
- Bug signalé par: Joomla! Bug Squad Member Marijke Stuivenberg
Toutefois, la seule façon de corriger complètement la question est une mise à niveau 1.5.6 (Trouvez la mise à jour dans le site officiel de Joomla!) , ou bien en modifiant le fichier reset.php (dans le dossier : \components\com_user\models) à la ligne 113 après global $mainframe; ajoutez :
Si vous ne pouvez pas attendre cette mise à jour de la version française, ajoutez le code ci dessus.if(strlen($token) != 32) {
$this->setError(JText::_('INVALID_TOKEN'));
return false;
}
Je vais vous donner le code de l'exploitation car il a été rendu publique ici
En appelant le lien :
http://votresiteJoomla.com/index.php?option=com_user&view=reset&layout=confirm
On vous propose de réinitialiser le mot de passe administrateur et d'entrer un jeton , qui a été envoyé par mail , lorsqu'on clique sur j'ai oublié mon mot de passe .Mais avec un jeton spécial : ' , le site Joomla! vous propose directement de réinitialiser le mot de passe .
En jetant un coup d'œil sur la ligne suivante du fichier /components/com_user/models/reset.php vous pouvez comprendre :
SELECT id FROM #__users WHERE block = 0 AND activation = '.$db->Quote($token)et en ajoutant un ' on aura le code suivant :
SELECT id FROM jos_users WHERE block = 0 AND activation = ''
Et c'est pourquoi en ajoutant les lignes suivants comme expliqué ci dessus :
if(strlen($token) != 32) {
$this->setError(JText::_('INVALID_TOKEN'));
return false;
}
on met une condition sur la taille du Token , qui envoyé au mail de l'administrateur se comporte de 32 caractères exactement .
Je me permet de vous parler de cette faille juste parce qu'elle est rendue publique ,il est aussi important de connaître les failles et leurs exploitations pour se vacciner .
Je répète que ce bug peut être mal-utilisé par des curieux alors faites vite et protégez vos sites .
Pour plus d'information visitez joomlafrance.org ou le blog de Joomla.org .
P.S:Si votre site utilise Joomla! 1.0.x , c'est pas la peine de faire ça , car l'exploitation de la faille ne marchera pas .(Un message du genre : “Vous n’êtes pas autorisé(e) à accéder à cette ressource” apparaîtra en essayant d'exploiter ce bug)
Bref je vous conseille de mettre à jour vos sites.web-01
LES COMMENTAIRES (1)
posté le 12 février à 15:49
Cette faille meme si elle redoutable peut être éviter si les mesure de sécurité de base ont été prise. Par exemple en changeant le traditionnel login "admin" en autrechose. là le pirate fait suater votre mot de passe mais ne connais pas le login de l'administrateur et donc ne peut pas exploiter cette faille a des fins peu recommandable