La Poubelle
Pou'r allé Danché
A titre informatif et pour que le maximum de personnes puissent corriger dans les plus brefs délais. :wink:
Source: IXUS
Source: IXUS
Selon un message posté ce week-end sur bugtraq, une nouvelle vulnérabilité de type "injection SQL" a été découverte dans phpBB2. Elle permet à un pirate de manipuler les requêtes SQL et de prendre ainsi le contrôle du forum.
La vulnérabilité se trouve dans la fonction search.php qui ne filtre pas suffisamment le contenu du paramètre "search_id". Un pirate peut donc exploiter cette faille pour faire passer ses propres requêtes SQL dans la base de données et récupérer ainsi les informations sensibles comme les hashes de mot de passe.
L'exploitation de cette vulnérabilité a été testée avec MySQL4, Apache 2 et PHP4. Elle a permis très rapidement l'obtention du hash MD5 du mot de passe administrateur.
Muni de ce hash, un pirate peut alors modifier son cookie pour se logger en tant qu'administrateur sans avoir à connaître le mot de passe. Une fois qu'il a accès au panneau de contrôle administrateur, il peut alors prendre le contrôle total sur le forum.
Les développeurs de phpBB 2.06 ont été avertis du problème et ont corrigé le script. Les utilisateurs de ce forum doivent donc télécharger de toute urgence la dernière version de phpBB 2.06 sur le site http://www.phpbb.com.
Vous pouvez tester la présence de la vulnérabilité sur votre forum au moyen de l'URL suivante :
http://votre_site/phpBB2/search.php?search_id=1\
Si votre forum est vulnérable, vous devriez obtenir une erreur SQL. Sinon, phpBB devrait vous indiquer qu'aucun topic ne correspond à votre recherche.
Si vous souhaitez corriger manuellement cette faille, préconise la modification suivante :
Code d'origine :
if ( intval($search_id) )
{
$sql = "SELECT search_array
FROM " . SEARCH_TABLE . "
WHERE search_id = $search_id
AND session_id = '". $userdata['session_id'] . "'";
Modification à effectuer :
$search_id = intval($search_id);
if ( $search_id )
{
$sql = "SELECT search_array
FROM " . SEARCH_TABLE . "
WHERE search_id = $search_id
AND session_id = '". $userdata['session_id'] . "'";
Découvreur de cette faille : Niels Teusink