• STATISTIQUES
  • Il y a eu un total de 2 membres et 11473 visiteurs sur le site dans les dernières 24h pour un total de 11 475 personnes!


    Membres: 2 433
    Discussions: 3 585
    Messages: 32 832
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Forum-Webmaster
    Une communauté webmaster pour apporter / recevoir de l'aide en création de site internet. Webmaster...
    Webmaster
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges
    [FR] µContest
    µContest est un site de challenges de programmation, c'est à dire qu'il propose des épreu...
    Hacking
    [EN] Security Traps
    Site de challenge qui prétend être construit non pas dans le but de parfaire vos connaissances, mais plutôt dan...
    Challenges
    [EN] Big-Daddy
    Big-Daddy est site internet communautaire avec un effectif diversifié, y compris des artistes, des programmeur...
    Hacking
    [EN] Gekko
    Site de challenge présenter sous la forme d'une quête. Vous êtes un agent secret qui répond sous le nom...
    Challenges
    [FR] Root-me
    Script: 5, Système: 20, Cracking: 16, Cryptanalyse: 17, Programmation: 8, Réaliste: 11, Réseau: 10, Stéganog...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 5 (1 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Faille Web] Full Path Disclosure
03-11-2012, 21h43 (Modification du message : 03-11-2012, 22h21 par Swissky.)
Message : #1
Swissky Absent
Bon membre
*



Messages : 523
Sujets : 32
Points: 96
Inscription : Apr 2012
[Faille Web] Full Path Disclosure
La faille Full Path Disclosure

1) Définition
Le « Full Path Disclosure » en français la divulgation du chemin complet est une faille très répandue car de nombreux développeurs ne sont pas sensibilisés à celle-ci mais parce qu’elle est inoffensive. Cependant si elle est utilisée en complément d’autres attaques comme les injections SQL ou les LFI, elle devient critique. Vous l’avez compris, cette faille affiche le chemin d’accès complet au script vulnérable tout en indiquant son type de vulnérabilité :
Warning: opendir(Array): failed to open dir: No such file or directory in C:\wamp\www\exercice\fullpathdir.php on line 5
Dans l’exemple précédent, la faille se situe au niveau du fichier « fullpathdir.php », plus exactement à la ligne 5 où est appelée la fonction « opendir() ».

2) Exploitation
Cette faille se met en évidence en insérant un caractère inattendue dans un paramètre d’une fonction, il existe donc de nombreuses manières d’utiliser cette faille. Les utilisations les plus courantes sont dans les fonctions htmlentities() , include(), opendir().
On va donc tester cette faille en local avec cette page PHP :
Code PHP :
<?php
if(isset($_GET["id"]))
{
    echo 
"membre n°".htmlentities($_GET["id"]);
}
?>
Décortiquons le contenu de cette page, on remarque qu’elle attend une requête de type GET et qu’elle l’utilise comme paramètre pour la fonction htmlentities(). On sait donc que la page affichera l’id passé dans l’URL donc si nous allons sur http://localhost/exercices/fullpathdir.php?id=13 la page nous renvoi : « membre n°13 ».

A) Insertion d’un « Array » vide
La page attend donc des nombres soit une variable numérique aussi on va modifier l’URL afin d’envoyer un autre type de variable comme tableau, « Array » en anglais. Essayons cette URL :
http://localhost/exercices/fullpathdir.php?id[]=13
En PHP, les crochets « [] » permettent de définir un tableau de valeurs. La fonction htmlentities() reçoit donc le tableau de valeur en paramètre or elle attend une variable de type string. Une erreur s’affiche :
[Image: 1351971553-1.png]
Cette erreur nous indique le nom de la fonction qui n’a pas réussie à comprendre notre requête ainsi que son emplacement sur le serveur.

B) L’injection de session illégale
Une manière de mettre en évidence cette faille revient à modifier le cookie de session : PHPSESSID. On ajoute un caractère non valide dans ce cookie, généralement on renvoi un cookie vide En effet un cookie de session doit être unique il permet au serveur de vous identifier aussi lorsqu’il récupère un cookie vide le serveur ne peut plus vous identifier et envoie un message d’erreur. La fonction session_start() est donc vulnérable.
Code PHP :
<?php
session_start
();
?>
La function session_start() nous génère un cookie de session si nous n’en avons pas. Maintenant on va modifier notre cookie pour le vider, insérez ce JavaScript dans la barre d’URL :
javascript: void (document.cookie = "PHPSESSID =");
Il a pour effet de créer un nouveau cookie du nom de PHPSESSID ce qui écrasera l’ancien. Lorsqu’on rafraîchit la page, on obtient l’erreur :
[Image: 1351971553-2.png]
On obtient encore une fois le chemin complet d’accès au script vulnérable. Notez que cette technique fonctionne aussi lorsqu’on modifie le cookie de session pour que son contenu fasse plus de 129 bytes :
javascript:void(document.cookie='PHPSESSID=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA');

3) Sécurisation
Vous pouvez protéger votre serveur contre cette faille de différentes façons en fonction de vos droits :
Si vous avez accès à tous le serveur, par exemple dans le cas d’un serveur dédié, recherchez le fichier php.ini qui se trouve dans le répertoire ci-dessous :
Code :
C:\wamp\bin\php\php5.3.8\
Puis modifiez « display_errors » et mettez-le à « off » ainsi les erreurs ne seront plus affichées.
Sinon, vérifiez vos variables avec les fonction :
Code PHP :
is_array() 
Code PHP :
if(is_string($var)) ... 
Code PHP :
if(!is_array($var)) ... 
etc de façon à filtrer les types variables afin qu'on ne puisse les fausser.

Cependant il arrive que l’on oublie de filtrer certaines variables aussi il est conseillé de désactiver l’affichage des erreurs avec la fonction :
Code PHP :
error_reporting(0); 

Copyright® Swissky
Toute reproduction même partielle est interdite.
Merci à Luxerails pour sa relecture et ses précisions sur la sécurisation Wink
+1 (3) -1 (0) Répondre
03-11-2012, 21h54
Message : #2
Luxerails Hors ligne
Bon membre
*



Messages : 267
Sujets : 6
Points: 67
Inscription : Aug 2011
RE: [Faille Web] Full Path Disclosure
Pas mal. Par contre il y a pas un petit problème ? La deuxième image parlant de l'affichage de l'erreur avec les sessions est la même que celle du dessus (sur htmlentities).

Citation :Sinon, vérifiez vos variables avec la fonction :
Code PHP :
is_array() 

Je pense que c'est mieux d'utiliser par exemple :
Code PHP :
if(is_string($var)) ... 

au lieu de
Code PHP :
if(!is_array($var)) ... 

(ou is_numeric() par exemple, pour les valeurs numériques)
+1 (0) -1 (0) Répondre
03-11-2012, 22h19 (Modification du message : 08-11-2012, 17h29 par Swissky.)
Message : #3
Swissky Absent
Bon membre
*



Messages : 523
Sujets : 32
Points: 96
Inscription : Apr 2012
RE: [Faille Web] Full Path Disclosure
Merci d'avoir vu cette erreur ^^"
Corrigée , et j'ajoute ton truc Wink
+1 (0) -1 (0) Répondre
07-12-2012, 00h57
Message : #4
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: [Faille Web] Full Path Disclosure
merci j'en apprend tout les jours avec vous Smile
+1 (0) -1 (0) Répondre
07-12-2012, 08h52
Message : #5
Shirobi Hors ligne
Bannis



Messages : 207
Sujets : 19
Points: 17
Inscription : Oct 2012
RE: [Faille Web] Full Path Disclosure
C'est le but d'un forum communautaire Wink
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Comment exploiter une faille SQL Injection CyberSee 33 11,180 22-09-2015, 21h53
Dernier message: CyberSee
  Comment est exploitée une faille XSS CyberSee 37 12,398 01-09-2015, 16h07
Dernier message: CyberSee
  [Tuto]Faille CRLF OverDreams 15 4,645 18-06-2013, 12h33
Dernier message: Hypnoze57
  [Faille WEB] LFI Swissky 10 3,042 25-02-2013, 22h04
Dernier message: InstinctHack

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut