Path traversal – Directory traversal

 

 

 

 

Introduction :

Qu’est-ce que le Path Traversal ou aussi appelé Directory traversal ?

C’est une vulnérabilité HTTP qui permet une attaque affectant le coté serveur des applications Web pour accéder aux fichiers ou aux répertoires qui résident en dehors du dossier racine de l’application. Cette vulnérabilité se produit lorsqu’un développeur ne parvient pas à établir ou à gérer les validations d’entrée tout en incluant des fichiers dans leurs applications Web.

Dans une telle situation, l’attaquant manipule les champs de saisie de l’ application Web en entrant les séquences  ../ ou certaines variantes similaires, afin de tromper la page Web et accéder aux fichiers du système souhaité.

 

Les conséquences de cette faille :

  • Récupération de données : l’attaque peut permettre de voir les noms d’utilisateurs et les afficher.

 

  • Accès à des fonctionnalités restreintes : par exemple, en utilisant une requête GET, effectuer des tâches normalement pas possibles à un niveau de privilège en intégrant une page administrateur.

 

  • Récupération du code source :Imaginons un serveur tournant avec PHP, l’attaquant peut englober le code source des différentes pages et analyser ces dernières à la recherche d’autres failles.

 

  • Analyse du serveur : En insérant /etc/passwd, nous avons la possibilité de comprendre comment le serveur est configuré.

 

NB : Les conséquences d’une faille Path Traversal vont dépendre  de la configuration du serveur cible.

 

Petit exemple pour mieux comprendre :

 

 

Un utilisateur demande à voir un fichier index.php via l’URL Web http://exemple.com/file=index.php. Alors l’application traite l’URL et appelle le fichier index.php qui était présent localement dans le dossier du serveur « Erdanay » en tant que « /var/www/html/Erdanay».

Le développeur utilise la fonctionnalité « include » afin de pouvoir gérer les fichiers par l’utilisateur, de cette façon l’application peut appeler directement les fichiers depuis le serveur local.

Imaginons le scénario où l’attaquant essaie de manipuler l’URL en utilisant la séquence  ../ comme http://exemple.com/file=../../../../etc/passwd, pour récupérer le contenu du serveur fichier de mots de passe. Vous connaissez tous le fichier passwd situé dans /etc/passwd.

Alors, on pourra lire le fichier dans /var/www/html/Erdanay/../../../../etc/passwd . Il faut bien comprendre que chaque ../ représente un retour au répertoire parent, donc si on revient à notre exemple on a appelé quatre fois ../, cela nous mènera dans le répertoire / « racine ».

Et dans ce cas, on peut simplement accéder au fichier de mot de passe.

Voici le schéma explicatif de notre exemple :

 

 

Exploitation d’un server Linux :

On va mettre en pratique tout ce que l’on vient de voir précédemment. Pour cela j’ai pris un server Linux sur Tryhackme (CTF – LFI Inclusion) pour vous montrer cette faille.

Si vous voulez suivre en direct, n’hésitez pas à vous connecter sur Tryhackme et déployer la machine.

Alors c’est parti !

 

Une fois que vous avez accédé à la page web, choisissez LFI-attack :

 

Il ne vous reste plus qu’à manipuler l’url en y ajoutant : ../../../../etc/passwd après le name= comme ceci :

 

Et voilà le travail, on a accès au contenu du fichier /etc/passwd.

 

 

Exploitation d’un server Windows :

Pour un server Windows,  rien de plus compliqué non plus. Le principe reste pareil, lorsque vous êtes face à un server Windows il vous suffit simplement de suivre la méthode :  ../

Pour information, cette méthode ne fonctionne pas souvent donc vous pouvez basculer vers l’option d’utiliser la barre oblique inversée \

Exemple :

http://exemple.com/file=/\…./\…./\…./\ C:/Users/Administrator/NTUser.dat

 

 

Bonus :

Un petit plus sur la liste des possibilités :

https://www.vulnerability-lab.com/resources/documents/587.txt

 

 

On arrive à la fin de cet article, j’espère que ces informations vous seront utiles. Si vous avez des questions ou des difficultés n’hésitez pas à me contacter, je me tiens à votre disposition 😉. Si vous trouvez cool ces articles, dites-moi si vous souhaitez que l’on aborde d’autres sujets.

Je vous dis au plaisir dans un nouvel article !! Peace

No responses yet

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

14 + six =

Follow by Email
YouTube