Kristo
Utilisateur open source-
Compteur de contenus
18 -
Inscrit(e) le
-
Dernière visite
Activité de Kristo
-
Kristo a ajouté un message dans un sujet Problème inscription mail
J'ai eu le meme souci avec une personne ayant un email du style x-@toto.org
(un - avant le @)
La solution proposée me parait bonne, elle est évoquée aussi sur http://www.commentcamarche.net/faq/sujet-8...ne-adresse-mail
(avec un 6 au lieu du 5)
-
0
-
-
Kristo a ajouté un message dans un sujet REGISTER GLOBALS OFF?
Bonjour,
Y a t-il des problèmes de sécurité pour peel avec un register globals on ?
-
0
-
-
Kristo a ajouté un message dans un sujet Injection de données dans les formulaires
Petite correction par rapport à mon message ci-dessus (vieux motard que jamais !!!)
Remplacer
$motclef = str_replace($search,$replace,$motclef);
par
$motclef = str_replace($search,$replace,$_GET['motclef']);
car c'est la 1ère fois que motclef est utilisé, il faut bien l'initialiser.
Notez que chez certains hébergeurs ca marche sans ça.
-
0
-
-
Kristo a ajouté un message dans un sujet Shopping 2.9 et 3.0 : Correctif d'une faille de sécurité sur lire/index.php donnant accès aux hash MD5 des mots de passe
Notez que cette faille est présente jusqu'à la version 3 en tous cas.
La version 4 est différente, je ne sais pas si elle a une faille similaire.
-
0
-
-
Kristo a ajouté un sujet dans PEEL SHOPPING : logiciel open source de boutique en ligne
Shopping 2.9 et 3.0 : Correctif d'une faille de sécurité sur lire/index.php donnant accès aux hash MD5 des mots de passeBonjour,
Ayant subi cette attaque sur ma boutique, je vous fais profiter ci-dessous de mon investigation et de la correction de cette importante faille de sécurité.
Une injection de code permet en effet à n'importe qui d'afficher les adresses email et les mots de passe en MD5 de tous les utilisateurs. A partir du MD5, il est assez facile de retrouver un certain nombre de mots de passe en clair.
Pour corriger la faille :
dans boutique/lire/index.php
Remplacer
if (!isset($_GET['rubid'])) { $rubid = 0;} else {$rubid = $_GET['rubid'];}
par :
if (!isset($_GET['rubid'])) { $rubid = 0;} else {$rubid = intval($_GET['rubid']);}
Voilà plus en détails mon investigation :
J'ai d'abord eu la surprise de recevoir un mail m'annonçant le changement de mon mot de passe d'admin de la boutique.
Aucun autre admin n'en étant à l'origine, j'ai regardé dans les logs, l'appel de init_mdp.
Je l'ai trouvé en effet, à l'heure du message que j'avais reçu.
Un peu plus haut dans le log, en provenance de la meme IP, j'ai trouvé un appel de lire/index.php avec un passage de paramètres contenant entre autres (je ne mets pas les détails) : conc...(...,email,mot_passe)...from peel_utilisateurs
J'ai testé cette ligne sur ma boutique et j'ai eu la surprise de voir s'afficher les adresses email et des mots de passe (hashés en MD5) de tous les utilisateurs. En voici une copie d'écran (floutée en partie) :
Il est facile ensuite pour les pirates de décrypter un certain nombre de mots de passe en MD5, avec des outils comme celui ci : AuthSecu, pour les mots de passe qui ne sont pas assez complexes.
Le pirate a donc retrouvé un mot de passe admin et l'a utilisé pour se connecter. Heureusement il n'a apparemment pas fait de dégats à la boutique. Je suppose que son but était de collecter des mots de passe pour les utiliser par ailleurs (sur paypal par exemple, si quelqu'un a un compte avec le meme mot de passe).
Cette faille circule parmi les pirates, je l'ai retrouvée avec google sur un forum à l'étranger.
Je vous suggère à tous de corriger lire/index.php rapidement.
Si quelqu'un découvre la même faille dans d'autres fichiers merci aussi de nous en informer.
- 2 réponses
- 2 164 vues
-
Kristo a ajouté un message dans un sujet PEEL SHOPPING 3.0
Pour ma part, j'ai eu la meme erreur après une migration vers php5/Mysql5.
L'erreur venait de modifs que j'avais faites, dont j'ai trouvé la correction ici (un simple ajout de parenthèses a réglé le problème) : http://www.oscommerce-fr.info/faq/qa_info.php?qID=198
-
0
-
-
Kristo a ajouté un message dans un sujet Ajout de taille sur les produits
J'ai bien avancé depuis la dernière fois et ma boutique fonctionne avec les choix de couleurs et de tailles...
Il me reste encore un problème à résoudre, et je bloque dessus.
Je vous dis d'abord, en complément de mon post précédent, les autres fichiers modifiés :
achat/modeles/produits_details.php
ajout d'un nouveau fichier : achat/modeles/saisie_attributs_produits.php
ajout des champs taillesdispo et couleursdispo dans la table produits
factures/factures_html.php : ajout taille et couleur
administrer/modeles/commande_details.php : affichage de la commande
administrer/commandes.php : ajout taille et couleur
achat/historique_commandes.php et achat/modeles/historique_commande_details.php
achat/achat_maintenant.php et modeles/achat_maintenant.php : mode de paiement
modeles/achat_confirmation.php : taille, couleur
Le problème qu'il me reste est que lorsque je mets dans le caddie X produits de couleur A puis Y memes produits de couleur B, il additionne les deux et me dit qu'il y a X+Y produits de couleur B.
C'est à dire par exemple : 1 T-shirt bleu + 2 T-shirts rouges = 3 T-shirts rouges, ce qui est un peu gênant.
Idem pour les tailles.
Pour résoudre le problème je sens bien qu'il faut modifier la structure du caddie pour qu'il y ait un array à trois dimensions ("produit", "taille", "couleur") en modifiant dans lib/class/caddie.php les fonctions init, ajout et compte_elements, mais je bloque sur compte_elements.
Il faut aussi modifier achat/modeles/caddie.php.
Voilà les fonctions init et ajout modifiées, pensez-vous qu'il y ait un bug ?
function init() {
/* Initialise (ou réinitialise) un caddie */
$this->articles = array("produit", "taille", "couleur");
$this->total = 0;
$this->cout_transport = 0;
$this->transport = "";
$this->paiement = "";
}
function ajout(&$produitid, $quantite, $taille, $couleur) {
/* Ajoute un article au caddie et met à jour le montant total */
if (isset($produitid)) {
if (! isset($this->articles[$produitid][$taille][$couleur])) {
$this->articles[$produitid][$taille][$couleur] = 'O';
}
$this->articles[$produitid][$taille][$couleur] += $quantite;
}
}
Et comment modifier compte_elements ?
function compte_elements() {
/* Renvoie le nombre d'articles dans le caddie */
$total = 0;
foreach ($this->articles as $produitid => $quantite) {
$total += $quantite;
}
return $total;
}
Merci de votre aide... attendu avec espoir...
(alexletiti, ensuite je pourrai te donner le détail)
-
0
-
-
Kristo a ajouté un message dans un sujet Injection de données dans les formulaires
Bon, après maints essais et maints tatonnements j'ai finalement trouvé les modifs à faire :
Dans achat\recherche.php :
Remplacer :
$resultat = mysql_query("SELECT id, reference, nom FROM peel_produits WHERE etat = '1' AND nom LIKE '%" . addslashes($_GET['motclef']) . "%' OR descriptif LIKE '%" . addslashes($_GET['motclef']) . "%' LIMIT $start,$nb");
par :
// pour filtrer les injections de données dans les formulaires (faille XSS)
$search = array("<",">","/","'","", "%3c", "%3e",";","?");
$replace = array("_","_","_","_","_","_","_","_","_");
$motclef = str_replace($search,$replace,$motclef);
$resultat = mysql_query("SELECT id, reference, nom FROM peel_produits WHERE etat = '1' AND nom LIKE '%" . $motclef . "%' OR descriptif LIKE '%" . $motclef . "%' LIMIT $start,$nb");
Puis remplacer
echo "<tr><td colspan=\"2\" class=\"normal\">Nous n'avons pas trouvé de résultats incluant le mot clé <b>". stripslashes($_GET['motclef']) ."</b>.<p></p><b>Suggestions :</b><br /><li type=\"square\"> Vérifiez l’orthographe du mot clé.<br /><li type=\"square\"> Essayez d'autres mots.<br /><li type=square> Utilisez des mots plus généraux.<p></p><a href=\"$wwwroot/achat/index.php\" class=\"normal\"><b>Cliquez ici</b></a> pour consulter directement notre catalogue.</td></tr>";
par
echo "<tr><td colspan=\"2\" class=\"normal\">Nous n'avons pas trouvé de résultats incluant le mot clé <b>". $motclef ."</b>.<p></p><b>Suggestions :</b><br /><li type=\"square\"> Vérifiez l’orthographe du mot clé.<br /><li type=\"square\"> Essayez d'autres mots.<br /><li type=square> Utilisez des mots plus généraux.<p></p><a href=\"$wwwroot/achat/index.php\" class=\"normal\"><b>Cliquez ici</b></a> pour consulter directement notre catalogue.</td></tr>";
Puis remplacer
print("<a class=\"petit\" href=\"recherche.php?motclef=".$_GET['motclef']."&start=".($start-$nb)."\">Page précédente</a>");
par
print("<a class=\"petit\" href=\"boutique/achat/recherche.php?motclef=".$motclef."&start=".($start-$nb)."\">Page précédente</a>");
Puis remplacer
print("<a class=\"petit\" href=\"recherche.php?motclef=".$_GET['motclef']."&start=".($start+$nb)."\">Page suivante</a>");
par
print("<a class=\"petit\" href=\"boutique/achat/recherche.php?motclef=".$motclef."&start=".($start+$nb)."\">Page suivante</a>");
(ce qui au passage corrige un bug sur les boutons précédent et suivant);
Puis remplacer
<a class="petit" href="<?php echo $_SERVER['PHP_SELF']."?motclef=.$_GET['motclef]."&start=".$index*$nb; ?>"><?php echo $index+1; ?></a>
par
<a class="petit" href="<?php echo $_SERVER['PHP_SELF']."?motclef=".$motclef."&start=".$index*$nb; ?>"><?php echo $index+1; ?></a>
-
0
-
-
Kristo a ajouté un message dans un sujet Ajout de taille sur les produits
Merci Patrice !
J'ai regardé un peu la chose. Je pense que tu parles de la table commandes_articles (et non commandes) ?
Si je comprends bien, il me faut ajouter un champ "taille" et un champ "couleur" dans cette table.
Et en php :
il me faut modifier : achat\caddie_ajout.php
pour ajouter ces deux variables à la ligne $_SESSION['caddie']->ajout($_REQUEST['id'], $_REQUEST['qte']);
et dans lib\class\caddie.php : il faut modifier la fonction init et la fonction ajout
et il faut modifier toutes les pages qui permettent de commander des produits, pour y ajouter un menu déroulant de taille ou de couleur :
index.php
achat/index.php et
achat/produit_details.php
Mais pour que mes produits "sachent" individuellement qu'ils doivent avoir une taille ou une couleur à gérer, il me faut aussi modifier la table produits;
et du coup administrer/produits.php pour y dire qu'il y a une taille ou/et une couleur à gérer.
J'ai bon ?
J'espère que je ne vais pas mettre le bordel dans la base avec mes modifs... d'autant qu'il faut que mon truc marche dans les jours qui viennent...
Par contre, je vais buter sur un problème : suivant les produits, les choix de tailles ou de couleurs ne sont pas les mêmes (par exemple, certains T-shirts ne sont pas disponibles en taille S) ce qui m'oblige à mettre des choses en "dur" dans les fichiers php... (?)
-
0
-
-
Kristo a ajouté un message dans un sujet Warning... lors de la céation d'un produit
Y a t-il un moyen de voir si l'on a 2 sessions admin ouvertes ?
C'est dans les cookies ?
-
0
-
-
Kristo a ajouté un message dans un sujet Warning... lors de la céation d'un produit
Ok j'ai fait cette modif...
... mais elle ne corrige pas le pb
Voilà 2 extraits du source de la page produits.php lorsque j'ajoute un produit :
<select size="1" name="categorie" class="formulaire1">
<option value="NULL">Toutes les catégories</option>
<br />
<b>Warning</b>: Cannot use a scalar value as an array in <b>/home/mvtpaix/domains/mvtpaix.org/public_html/boutique/administrer/produits.php</b> on line <b>873</b><br />
<br />
<b>Warning</b>: Cannot use a scalar value as an array in <b>/home/mvtpaix/domains/mvtpaix.org/public_html/boutique/administrer/produits.php</b> on line <b>875</b><br />
<option value="2" >Autocollants</option><option value="4" >Badges - Pins</option><option value="9" >Cartes de voeux et postales</option><option value="8" >Divers</option><option value="1" >Livres / Agenda 2008</option><option value="3" >Tee-shirts et vêtements</option><option value="5" >Vidéos / DVD</option> </select>
et
tr><td align="center" class="normal" colspan="7">
<br />
<b>Warning</b>: Cannot use a scalar value as an array in <b>/home/mvtpaix/domains/mvtpaix.org/public_html/boutique/administrer/produits.php</b> on line <b>1026</b><br />
<a class="normal" href="/boutique/administrer/produits.php?start=30&categorie=">page suivante</a><br /><a class="normal" href="/boutique/administrer/produits.php?start=0&categorie=<br />
<b>Warning</b>: Cannot use a scalar value as an array in <b>/home/mvtpaix/domains/mvtpaix.org/public_html/boutique/administrer/produits.php</b> on line <b>1038</b><br />
">1</a>
<a class="normal" href="/boutique/administrer/produits.php?start=30&categorie=<br />
<b>Warning</b>: Cannot use a scalar value as an array in <b>/home/mvtpaix/domains/mvtpaix.org/public_html/boutique/administrer/produits.php</b> on line <b>1038</b><br />
">2</a>
</td></tr></table></td>
</tr>
-
0
-
-
Kristo a ajouté un message dans un sujet Warning... lors de la céation d'un produit
???
???
No comprendo
Ca règle le pb ?
Sinon quel pb ?
Merci
-
0
-
-
Kristo a ajouté un message dans un sujet Warning... lors de la céation d'un produit
Bonjour,
J'ai la même erreur.
Voilà la ligne 1026 :
print("<a class=\"normal\" href=\"".$_SERVER['PHP_SELF']."?start=.($start+$nb)."&categorie=".vb($frm['categorie])."\">page suivante</a>");
Je ne pense pas que ce soit genant mais ce serait bien de pouvoir le corriger...
-
0
-
-
Kristo a ajouté un message dans un sujet souci avec la fonction zoom
Bien vu !
J'avais le même problème.
Merci, ca marche.
-
0
-
-
Kristo a ajouté un message dans un sujet Ajout de taille sur les produits
Bonjour,
J'ai exactement le meme problème que sayaflo : comment faire pour ajouter un critère sur certains produits : la taille ou la couleur par exemple ? :huh:
Des T-shirts de tailles S, M, L, XL et de couleurs Bleu, Rouge, Vert par exemple; et faire en sorte que les acheteurs puissent choisir la taille et la couleur...
Sayaflo si tu as réussi à le faire, peux-tu expliquer ici quelles sont les modifs à faire dans la base et dans le code ?
Sinon, quelqu'un peut-il nous aider ?
Merci... help je suis bloqué... ;)
-
0
-