Path Traversal Directory, une faille silencieuse mais dangereuse !

20 nov. 2024

|

5

min de lecture

OWASP Top 10

Path Traversal Directory, une faille silencieuse mais dangereuse ! 

Qu’est-ce que le Path Traversal Directory ?

Le Path Traversal Directory, également appelé Directory Traversal, est une vulnérabilité courante en sécurité informatique qui permet à un attaquant d'accéder à des fichiers sensibles en manipulant les chemins d'accès à ces fichiers. En exploitant cette faille, il peut souvent lire des fichiers critiques tels que les configurations système, les journaux, ou même des bases de données, ce qui compromet la confidentialité, l'intégrité et la disponibilité d'une application.

L’objectif principal du Path Traversal est de remonter dans l’arborescence des répertoires d’un serveur, souvent en insérant des séquences spécifiques comme ../ (dot-dot-slash). Par exemple, si un site web est vulnérable, un attaquant pourrait soumettre une requête comme :

http://example.com/download?file=../../../../etc/passwd

Cette requête permettrait de récupérer le fichier système /etc/passwd, contenant des informations critiques sur les utilisateurs d’un serveur Unix/Linux. Bien que les données sensibles varient d'un environnement à un autre, les conséquences restent alarmantes.

Mécanisme de la faille

Fonctionnement technique

Le Path Traversal exploite la gestion incorrecte des chemins de fichiers par une application web ou API. Lorsqu’une application utilise un paramètre utilisateur pour définir le fichier à lire ou à afficher, sans valider ou nettoyer ce paramètre, elle devient vulnérable. 

Si un attaquant soumet une URL comme : http://example.com/index.php?file=../../../../etc/passwd

le serveur combinera le chemin d'accès /var/www/uploads/ avec le paramètre de l'utilisateur pour lire le fichier /etc/passwd, exposant ainsi des données sensibles.

Points d’entrée typiques

  1. URL et paramètres GET/POST : les paramètres d'URL ou les données envoyées via des formulaires non sécurisés.

  2. Variables d’environnement : les chemins de fichiers mal configurés dans des variables systèmes ou des configurations.

  3. APIs RESTful : les API qui permettent de télécharger ou de manipuler des fichiers sans valider correctement les données d'entrée.

Risques et impacts de la faille

Le Path Traversal est particulièrement dangereux en raison de son potentiel d'accès non autorisé. Voici ses principales implications :

1. Accès non autorisé aux fichiers

Les fichiers ciblés incluent souvent :

  • Configurations système : ex. /etc/passwd ou config.php qui contiennent des informations critiques comme des identifiants de base de données.

  • Données privées : journaux d’activité, fichiers clients ou documents sensibles.

2. Escalade de privilèges

Un attaquant peut exploiter cette faille pour obtenir des informations qui permettent ensuite une escalade de privilèges. Par exemple, accéder à des clés SSH ou des mots de passe d’administration pourrait lui permettre de contrôler l’ensemble du système.

3. Exfiltration de données

Les entreprises sont particulièrement vulnérables aux fuites de données sensibles :

  • Amendes réglementaires (ex. : RGPD).

  • Perte de réputation.

  • Atteinte à la confiance des clients.

Exemple d’exploitation d’un Path Directory Traversal

Étapes d’une attaque type

  1. Analyse de la cible : l’attaquant identifie un point d’entrée potentiel, comme un paramètre d’URL.

  2. Test de l’entrée utilisateur : en envoyant des séquences comme ../, il vérifie si le serveur retourne un comportement anormal.

  3. Extraction des fichiers sensibles : une fois la faille confirmée, il soumet des chemins spécifiques pour obtenir des fichiers critiques.

----------Encart Anecdote------------------

Cas célèbre

Un exemple bien connu est l'attaque contre une ancienne version de l’application WordPress, où une vulnérabilité Path Traversal a permis d’accéder à des fichiers de configuration critiques, entraînant des compromissions massives de sites web.

--------------------------------------------

Conclusion et bonnes pratiques

Le Path Traversal Directory est une faille de sécurité courante mais évitable. En comprenant son mécanisme et ses implications, les développeurs peuvent mettre en œuvre des mesures préventives robustes pour protéger leurs applications et leurs utilisateurs.

Conseils pour les développeurs :

  • Validez systématiquement toutes les entrées utilisateurs.

  • Implémentez des tests de sécurité dans vos pipelines CI/CD.

  • Formez vos équipes sur les meilleures pratiques en matière de sécurité.

Le Canonical Path, la meilleure solution ? 

Qu’est-ce qu’un "canonical path" ?

Un canonical path est une version standardisée ou "normale" d’un chemin de fichier. Cela signifie qu'il est converti en une forme unique qui supprime :

  1. Les éléments relatifs (./, ../)

  2. Les alias de répertoire (/folder/../)

  3. Les redondances (/folder//subfolder/)

En gros, cela permet de résoudre un chemin relatif en un chemin absolu et unique, souvent en rapport avec la racine du système de fichiers.

Exemple

  • Entrée : /var/www/./uploads/../config/../../etc/

  • Canonical path : /etc/

Ce processus garantit que le chemin est bien interprété, sans ambiguïté ni possibilité de navigation imprévue. 

Avantages de cette méthode

  • Fiabilité : résout les chemins ambigus et normalise leur structure.

  • Clarté : permet une validation plus facile et logique des autorisations.

  • Sécurité renforcée : bloque efficacement les tentatives de contournement via des  chemins relatifs.

Partager sur :

Partager

Échangeons sur vos besoins en AppSec

Échangeons sur vos besoins en AppSec

Prenez contact avec nous, et intégrez dès maintenant l’AppSec et la méthodologie Amiltone dans vos processus de développement

© 2025 Amiltone tous droits réservés

Mentions légales

Gestions des cookies

© 2025 Amiltone tous droits réservés

Mentions légales

Gestions des cookies

© 2025 Amiltone tous droits réservés

Mentions légales

Gestions des cookies