Computer Security
[EN] securityvulns.ru
no-pyccku



Related information

  Daily web applications security vulnerabilities summary (PHP, ASP, JSP, CGI, Perl)

  [SA22005] Qualiteam X-Cart cmpi.php Variable Overwriting Vulnerability

  [SA21911] BizDirectory "message" Cross-Site Scripting Vulnerability

  [SA22013] ECardPro "keyword" SQL Injection Vulnerability

  [SA21988] CMtextS admin.txt Password Disclosure

From:cdg393 <cdg393_(at)_gmail.com>
Date:20.09.2006
Subject:[Full-disclosure] A.I-Pifou (Cookie) Local File Inclusion

Produit vulnerable :               A.I-Pifou  (Cookie) Local File Inclusion,
...   ( Livre d'or en PHP )
'''''''''''''''''
'''

Site officiel :
http://actif-video.chez-alice.fr/index.php
'''''''''''''''

Failles decouvertes :              (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 a inclure est recuperee depuis la valeur du cookie
ze_langue_02.

Cette action est dangereuse puisque si l'on cree nous meme 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);
---------------------------------------------------------------------------------


Grace a la variable $choix_lng, le fichier choix_langue.php permet de
modifier directement la valeur du cookie ze_langue_02.

Ainsi la valeur recuperee par HTTP_GET_VARS devient celle du cookie
ze_langue_02.


Exploitation :
''''''''''''''

Inclusion Local :
'''''''''''''''''


Deux solutions nous sont offertes :

-> 1] On pourrait creer nous meme 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
vulnerable, c'est a dire  /inc/change_lang_ck.php.

-> 2] On pourrait utiliser le fichier choix_langue.php qui permet de faire
automatiquement la meme manoeuvre.


Utilisation du fichier choix_langue.php :
'''''''''''''''''
'''''''''''''''''
'''''''

On commence par specifier comme valeur a la variable choix_lng le chemin du
fichier a lire en ajoutant a la fin un nullbyte (%00) qui permet d'annuler
ce qui est ajoute apres notre entree :

Exemple :
http://localhost/livre_dor/choix_langue.php?choix_lng=../../../../../../../BOOT.
ini%00

Une fois la valeur specifiee, il nous reste plus qu'a se diriger vers un
fichier qui apelle le fichier vulnerable /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 vulnerable :

livre_dor.php :
'''''''''''''''
---------------------------------------------------------------------------------

Ligne 15  : include ('inc/change_lang_ck.php');
---------------------------------------------------------------------------------


/!\/!\/!\ Pour plus d'informations, une video de l'exploitation de la faille
est disponible sur cdg.new.fr ;) /!\/!\/!\


@@@@@@@@@@@@@@@@@ Avis de securite par cdg393 // cdg.new.fr //
cdg393_gmail_com =)

About | Terms of use | Privacy Policy
© SecurityVulns, 3APA3A, Vladimir Dubrovin
Nizhny Novgorod

 
 



Rating@Mail.ru