lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ