[<prev] [next>] [day] [month] [year] [list]
Message-ID: <d2c8d5d80609191556l6aeb9ad1k9263eaf978ea2044@mail.gmail.com>
Date: Wed, 20 Sep 2006 00:56:28 +0200
From: cdg393 <cdg393@...il.com>
To: full-disclosure@...ts.grok.org.uk
Subject: A.I-Pifou (Cookie) Local File Inclusion
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 =)
Content of type "text/html" skipped
_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/
Powered by blists - more mailing lists