 zone-h.fr: Avis de sécurité ZHFR-1432 Date de publication: 29/06/2006
Vulnérabilité: Injection SQL Impact: Manipulation de données D'où: A distance Risque: Moyen Solution: Aucun correctif SE: Tous Produit: MyAds (module pour Xoops) Versions affectées: 2.x
Détails: KeyCoder a identifié une vulnérabilité dans MyAds (module pour Xoops). Celle-ci pourrait être exploitée par une personne malintentionnée afin d'effectuer des attaques par injection SQL.
Les données passées au paramètre "lid" dans "annonces-p-f.php" ne sont pas correctement filtrées avant d'être utilisées dans une requêtre SQL. Cela pourrait être exploité pour manipuler des requêtes SQL en injectant du code SQL arbitraire. (Permet de récupérer l'user et le md5 de l'admin par exemple, ou encore insérer un nouveau membre en temps qu'admin etc...)
[Mise à jour] Solution officieuse trouvée sur xoops.org (post de zyspec):
Vers la fin du fichier listing-p-f.php (ou annonces-p-f.php , ca dépend de la version de MyAds que vous utilisez) , juste avant ce code :
switch($op) {
Vous trouverez
foreach ($_POST as $k => $v) {
${$k} = $v;
}
$lid = isset( $_GET['lid'] ) ? $_GET['lid'] : '' ;
if(!isset($_POST['op']) && isset($_GET['op']) ) {
$op = $_GET['op'] ;
}
Supprimez ces lignes, ou mettez les en commentaire avec // en début de ligne, et remplacez les par:
$lid = isset( $_GET['lid'] ) ? intval($_GET['lid']) : '' ;
$op = isset($_POST['op']) ? $_POST['op'] : '' ;
$op = isset($_GET['op']) ? $_GET['op'] : $op ;
$yname = isset($_POST['yname'] ? $myts->addSlashes($_POST['yname']) : '';
$ymail = isset($_POST['ymail'] ? $myts->addSlashes($_POST['ymail']) : '';
$fname = isset($_POST['fname'] ? $myts->addSlashes($_POST['fname']) : '';
$fmail = isset($_POST['fmail'] ? $myts->addSlashes($_POST['fmail']) : '';
Noubliez pas de placer ca avant le switch($op).
Cette modification permet de corriger aussi la faillle du module Job Listing (jobs ver 1.9). |