[Joomla]Une faille de sécurité importante a été detectée

Publié le 14 août 2008 par Aymen |eon|

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
Le mot de passe dans Joomla/Mambo ne peuvent pas être récupérés puisqu'ils sont crypté avec une fonction de hachage unidirectionnelle (MD5). Et c'est pourquoi , on peut juste les réinitialiser.
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 :
if(strlen($token) != 32) {
$this->setError(JText::_('INVALID_TOKEN'));
return false;
}
Si vous ne pouvez pas attendre cette mise à jour de la version française, ajoutez le code ci dessus.
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