Fork me on GitHub

Alerte de sécurité : Faille dans le module MyAds

200602
Juillet
  Niluge Modules 5389
Modules

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).

Note: 0.00 (0 votes) - Noter cet article -

Partager Twitter Partagez cette article sur GG+
Format imprimable Envoyer cet article à un ami
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Anonyme Posté le: 18/07/2006 11:01  Mis à jour: 18/07/2006 11:01
 Re: Alerte de sécurité : Faille dans le module MyAds
Bonjour
l'article est sympa. Par contre je n'ai encore que très peu d'espérience en développement php. Pourriez vous expliquer un peu, ici ou ailleurs, la faille car dans mes codes j'ai qq ch qui ressemble enormément à ce que vous demandez de remplacer

Cdl
Xoops accro
Inscrit le: 04/02/2003
De: Le Mans
Contributions: 12273
Christian Posté le: 18/07/2006 13:21  Mis à jour: 18/07/2006 13:21
 Re: Alerte de sécurité : Faille dans le module MyAds
Citation :
Pourriez vous expliquer un peu
c'est très simple, soit tu restes comme tu es sans rien changer et comme on sait qu'une faille de sécurité existe, c'est exactement comme quelqu'un qui n'utilise pas de préservatifs.

Voilà tu connais les risques. Libre à toi de les prendre ou non.
Anonyme Posté le: 18/07/2006 13:40  Mis à jour: 18/07/2006 13:40
 Re: Alerte de sécurité : Faille dans le module MyAds
Bonjour
C gentil comme réponse. je réformule. j'ai bien vu que vous parliez d'une faille, et comme demandé je demandais quelques explications sur cette faille.

je ne vois pas ce qui pourrait être exploite dans le code que vous remplacé, je ne vois pas de réelle différence dans le code que vous proposé.

pour prendre une autre image plus jolie que ton préservatif, je te propose

Apporte un poisson à un homme et il mangera un jour, apprend lui à pecher et il mangera tous les jours.

Cdl
William
Xoops accro
Inscrit le: 04/02/2003
De: Le Mans
Contributions: 12273
Christian Posté le: 18/07/2006 15:58  Mis à jour: 18/07/2006 15:58
 Re: Alerte de sécurité : Faille dans le module MyAds
moi je te propose l'utilisation d'un moteur de recherche. Dans google (ou autre) tu saisis "injection sql" et tu tombes par exemple sur cette réponse.
Anonyme Posté le: 18/07/2006 16:12  Mis à jour: 18/07/2006 16:12
 Re: Alerte de sécurité : Faille dans le module MyAds
et re
je sais très bien ce qu'est une injection, j'en propose tous les jours pour réinjecter des données dans certains sites web dynamique.

ce que je te dis c'est que là tout de suite, je ne vois pas de différence entre les deux codes, je ne vois pas comment la lecture en boucle sur $_post ou $_get permet de le faire d'ailleurs

C tout ce que je dis.
je pense que les experts que vous représenter savent ce qu'ils disent, parlez un plus et expliquez nous pourquoi cela peut se faire sur la version de code que vous conseillez de remplacer par une autre qui ne le permet plus.

Cdl
William
Semi pro
Inscrit le: 06/01/2004
De: Non loin de Paris
Contributions: 666
zoullou Posté le: 18/07/2006 19:03  Mis à jour: 18/07/2006 19:03
 Re: Alerte de sécurité : Faille dans le module MyAds
Salut,

Pour cette partie de code :
foreach ($_POST as $k => $v) {
    ${
$k} = $v;
}

Ca revient en gros à mettre la directive register globals à on.

Ensuite,
$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']) : '';

permet d'éviter les injection SQL.

Je ne suis pas un pro de la sécurité alors ces infos sont à prendre avec des pincettes
Anonyme Posté le: 18/07/2006 19:28  Mis à jour: 18/07/2006 19:28
 Re: Alerte de sécurité : Faille dans le module MyAds
MERCI
je peux commencer à regarder et à chercher.
Cdl
William
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

35 Personne(s) en ligne (2 Personne(s) connectée(s) sur Articles) | Utilisateur(s): 0 | Invité(s): 35 | Plus ...