SudBox Boutique *************** Informations : °°°°°°°°°°°°°° Langage : PHP Website : http://www.sudbox.com Version : 1.2 Problème : Accès Admin Developpement : °°°°°°°°°°°°°°° "Votre propre boutique de commerce électronique. Le script comprend en mode administration différents modules: création et gestion de la boutique (configuration complète en mode admin. Mot de passe, login, devises, tva....) Mise en page des fiches produits avec: Prix, TVA, frais de port, photos, gestion des stocks, gestion des articles épuisés, gestion des commandes en ligne..). Installation rapide. (création automatique des tables dans votre base de données MySQL.)" Le mode administration dont on parle dans cette description a un problème de sécurité. Dans les fichiers admin, ou peut voir des lignes de code vérifiant que c'est bien l'admin loggé qui les visite : --------------------------------------------- --------------------------------------------- On est donc considéré comme admin si la session "login" est enregistrée. Voyons maintenant la page d'authentification, admin/login.php : ----------------------------------------------------------------- ----------------------------------------------------------------- Le fichier extrait d'abord le mot de passe et le login administrateur de la base de données, et les compare au mot de passe et au login entré dans le formulaire par l'utilisateur. Si ce sont les mêmes, $check vaut "ok". On regarde ensuite si $check est vide, et si ce n'est pas le cas, on enregistre la session "login". Le problème est qu'on peut définir nous-même la variable $check sans que les informations entrées soient correctes. Pour entrer dans la partie admin, il suffira donc de taper l'url : http://[target]/admin/login.php?check=1&admin=1 Solution : °°°°°°°°°° Un patch est disponible sur http://www.phpsecure.info . Merci à PasS, qui m'a fait remarquer une erreur dans mon patch. Il suffit d'ajouter, après la ligne : ------------------------------- include "../configuration.php"; ------------------------------- la ligne suivante : -------------- unset($check); -------------- Qui définit par défaut la variable $check comme étant vide. Credits : °°°°°°°°° Auteur : frog-m@n E-mail : leseulfrog@hotmail.com Website : http://www.frog-man.org, http://www.phpsecure.info Date : 18/05/03