Linker ****** Produit : ********* Linker http://enproject.codelib.co.kr Versions : ********** 2.0.0 (et moins?) Date : ****** 14/04/02 Problemes : *********** - Lecture du HD - Recuperation d'infos (passwords, DBHOST, DBUSER, etc...) Dveloppement : ************** Linker est un service permettant de lister des liens sur un site. Il comprend une partie administrative, dans le dossier /manage/. Dans le code de l'authentification, dans le fichier /manage/authen_check.php, on voit : ------------------------------------------------------------- include ("../function/pass_info.php"); $adminid = md5($HTTP_POST_VARS[adminid]); $adminpw = md5($HTTP_POST_VARS[adminpw]); if ($adminid == $Sadmin_id && $adminpw = $Sadmin_pass) { setcookie("admin_login","1",0,"/"); setcookie("linker_key1",$adminid,0,"/"); setcookie("linker_key2",$adminpw,0,"/"); echo ""; exit; } ------------------------------------------------------------- Pour être loggé, 3 cookies sont envoyés : 1er : nom : admin_login, valeur : 1 2eme : nom : linker_key1, valeur : LOGIN ADMIN CRYPTé 3eme : nom : linker_key2, valeur : PASS ADMIN CRYPTé Les login et pass envoyés par cookies sont cryptés en md5, c'est donc fort dur à decrypter. On pourrait néanmoins essayer de voler ces cookies à l'admin, en envoyant par exemple une proposition de liens piégée, mais il y a plus simple. Voici le code source complet du fichier imageview.php, contenu dans le repertoire principal de linker : --------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------- Ce fichier ne contient qu'une seule chose : une faille =p Cette faille nous permet de lire n'importe quel fichier dans le disque dur. Ce qui pourrait nous donner comme url : http://www.linkersite.com/imageview.php?uid=../../../PATH/etc/passwd Mais comme c'est un tuto sur Linker, nous allons rester dans linker :) Il y a 2 fichiers interessants : /function/pass_info.php, contenant les password et login admin, cryptés /function/base_info.php, contenant l'host, l'user et le pass de la DB. Il suffira donc d'aller à l'url /imageview.php?uid=../function/pass_info.php ou /imageview.php?uid=../function/base_info.php et d'afficher la source pour lire les fichiers. Mais tout cela ne nous donne pas l'accès admin, puisque informations sont cryptées. Il nous faut alors revenir au fichier authen_check.php. Les cookies linker_key1 et linker_key2 contiendront les infos trouvées dans pass_info.php. Les 3 cookies sont remplis, il ne reste plus qu'a les envoyer sur /manage/, et les droits admins sont à nous. Patch : ******* / Greetz : ******** / Credits : ********* frog-m@n leseulfrog@hotmail.com