5 Holes, Part 1 *************** Intro : ******* Il m'arrive de trouver des failles mineures, ou vites expliquables. Pour ne pas user du papier ( =))))) ) sans raison, j'ai décidé de faire à chaque fois un tuto de 5 petites failles, plutot que 5 petits tutos avec une faille. Date : ****** Achevé le 17/04/02 Services : ********** - THTTPD - sgdynamo - Myannuaire - phpAnyVote - DiSi-Poll Developpement : *************** 1) THTTPD server ---------------- http://www.acme.com/software/thttpd/ Versions : 2.20b 10oct00 (et autres ?) Probleme : - Cross Site Scripting (XSS) Developpement : Une url du style http://www.host.com/non-existant/ sur un site utilisant thttpd nous donnera : 404 Not Found The requested URL '/non-existant/' was not found on this server. -------------------------------------------------------------------------------- thttpd/2.20b 10oct00 http://www.host.com/ fera donc executer le script directement sur la page d'erreur 404. 2) Sgdynamo ----------- Probleme : - XSS Exploit : /sgdynamo.exe?HTNAME= 3) Myannuaire ------------- http://www.laboweb.net/ Versions : 1.0 Problème : - Récuperation du password admin Developpement : On peut voir dans admin.php, ces quelques lignes, commentées par l'auteur : ---------------------------------------- ---------------------------------------- Tous ce qu'il reste a faire, comme le dit l'auteur, c'est d'aller chercher le mot de passe, à l'url /admin/varadmin.lst . 4)phpAnyVote ------------ http://www.punknews.org/ Version : 1.0 Problème : - Contournement de la sécurité votes multiples. Developpement : Voici ce qu'est la sécurité : if($vote && !$already_voted) SetCookie("already_voted","1");?> Il suffit donc d'envoyer un cookie avec comme nom already_voted et sans valeur pour pouvoir voter encore et encore. Et c'est une tâche facile à automatisée... 5)DiSi-Poll ----------- http://www.cyberfly.net/ Version : 0.9.0 Problème : - Contournement de la sécurité votes multiples. Developpement : Même chose que dans le sondage précédent, mais ici dans poll.php3. On peut y voir : setcookie("voteyn", "1" ,time()+$cookietime); Donc le cookie sans valeur à envoyer s'appelera 'voteyn'. Greetz : ******** Mercussio Credits : ********* frog-m@n leseulfrog@hotmail.com