Full Disclosure mailing list archives
A.I-Pifou (Cookie) Local File Inclusion
From: cdg393 <cdg393 () gmail com>
Date: Wed, 20 Sep 2006 00:56:28 +0200
Produit vulnérable : A.I-Pifou (Cookie) Local File Inclusion, ... ( Livre d'or en PHP ) '''''''''''''''''''' Site officiel : http://actif-video.chez-alice.fr/index.php ''''''''''''''' Failles découvertes : (Cookie) Local File Inclusion, ... ''''''''''''''''''''' Explications : '''''''''''''' inc/change_lang_ck.php : '''''''''''''''''''''''' --------------------------------------------------------------------------------- Ligne 7 : $ze_langue_02 = $HTTP_COOKIE_VARS['ze_langue_02']; Ligne 8 : include ('langues/'.$ze_langue_02.'/'.$ze_langue_02.'_lng_web.inc'); --------------------------------------------------------------------------------- Le chemin du fichier à inclure est recupérée depuis la valeur du cookie ze_langue_02. Cette action est dangereuse puisque si l'on crée nous même un cookie avec comme nom ze_langue_02 en lui fournissant comme valeur le chemin du fichier que l'on souhaite inclure, l'inclusion se fait ! choix_langue.php : '''''''''''''''''' --------------------------------------------------------------------------------- Ligne 2 : $choix_lng = $HTTP_GET_VARS['choix_lng']; Ligne 3 : setcookie('ze_langue_02', $choix_lng, time()+20*24*3600); --------------------------------------------------------------------------------- Grâce à la variable $choix_lng, le fichier choix_langue.php permet de modifier directement la valeur du cookie ze_langue_02. Ainsi la valeur recupérée par HTTP_GET_VARS devient celle du cookie ze_langue_02. Exploitation : '''''''''''''' Inclusion Local : ''''''''''''''''' Deux solutions nous sont offertes : -> 1] On pourrait créer nous même un cookie qu'on nommera ze_langue_02 et dont le contenu sera le chemin du fichier qu'on souhaite lire, puis il suffirait ensuite de se rediriger vers un fichier qui apelle le fichier vulnérable, c'est à dire /inc/change_lang_ck.php. -> 2] On pourrait utiliser le fichier choix_langue.php qui permet de faire automatiquement la même manoeuvre. Utilisation du fichier choix_langue.php : ''''''''''''''''''''''''''''''''''''''''' On commence par spécifier comme valeur à la variable choix_lng le chemin du fichier à lire en ajoutant à la fin un nullbyte (%00) qui permet d'annuler ce qui est ajouté après notre entrée : Exemple : http://localhost/livre_dor/choix_langue.php?choix_lng=../../../../../../../BOOT.ini%00 Une fois la valeur specifiée, il nous reste plus qu'a se diriger vers un fichier qui apelle le fichier vulnérable /inc/change_lang_ck.php. Le fichier livre_dor.php par exemple, qui represente l'index du livre d'or, est l'un de ces fichiers qui appellent le fichier vulnérable : livre_dor.php : ''''''''''''''' --------------------------------------------------------------------------------- Ligne 15 : include ('inc/change_lang_ck.php'); --------------------------------------------------------------------------------- /!\/!\/!\ Pour plus d'informations, une vidéo de l'exploitation de la faille est disponible sur cdg.new.fr ;) /!\/!\/!\ @@@@@@@@@@@@@@@@@ Avis de sécurité par cdg393 // cdg.new.fr // cdg393_gmail_com =)
_______________________________________________ Full-Disclosure - We believe in it. Charter: http://lists.grok.org.uk/full-disclosure-charter.html Hosted and sponsored by Secunia - http://secunia.com/
Current thread:
- A.I-Pifou (Cookie) Local File Inclusion cdg393 (Sep 19)