Vulnérabilités du web : Directory Traversal

Le partage, c’est bien quand c’est utile :

Cette faille n’est pas très compliquée mais il faut quand même en parler pour s’en protéger.
Cette faille est également appelée dot dot slash (../) car c’est, en général, avec cette séquence que la faille apparaît. Il s’agit en fait d’inclure des ../ (sur les systèmes UNIX(-like) ou ..\ sur les systèmes de Microsoft) dans des données contrôlables par l’utilisateur qui vont servir à former un chemin d’accès.

On peut la comparer à une forme simplifiée de File Inclusion dans certains cas.

Rien de mieux qu’un exemple pour comprendre cette faille de sécurité. Imaginons un site avec des galeries photos. On peut changer la galerie affichée grâce à une variable GET. Le script pourrait ouvrir le dossier pointé par la variable GET et lister les fichiers qu’il contient en écrivant une balise <img src="nom du fichier" /> pour chacun d’eux. On pourrait alors faire la requête /galerie.php?gal=../../admin pour lister les fichiers du répertoires d’administration.

On peut également imaginer un exemple avec un fichier pour inclure /chemin/local/du/script/../../../../etc/passwd par exemple.

Se protéger

Pour se protéger, on peut utiliser une whitelist (liste blanche) comme pour les failles de type File Inclusion. C’est la méthode la plus sûre mais pas la plus souple. On peut également empêcher la séquence .. pour éviter de remonter dans l’arborescence des fichiers et le caractère / (ou \ sur Windows) si on veut empêcher de descendre dans l’arbre.

Bonne sécurisation !

Le partage, c’est bien quand c’est utile :