Qu'est-ce qu'une faille Traversal Directory ?


Les attaques dites « de traversement de répertoires » (en anglais directory traversal ou path traversal) consistent à modifier le chemin de l'arborescence dans l'URL afin d’accéder à des répertoires du site non autorisés. La faille Directory Traversal permet aux pirates d’explorer récursivement tous les fichiers et répertoires d’un serveur. Tout serveur web dont les entrées utilisateurs sont mal contrôlées est vulnérable face à ce type d’attaque.

Si la tentative réussit, le pirate peut afficher et modifier des fichiers confidentiels, des fichiers de configuration, et s’en servir pour exécuter des codes malicieux qu’il a créés. Un pirate peut être en mesure de lire le contenu de fichiers confidentiels stockés sur un serveur et exposer ces données sensibles, ou les vendre à d’autres personnes malveillantes.

Exemple :
Sur les serveurs vulnérables, il suffit de remonter le chemin avec plusieurs chaînes du type « ../ » :
http://domaine.com/../../../../répertoire/fichier. Il est aussi possible d’encoder certains caractères :
Sous la forme d'encodage d'URL :
http://domaine.com/..%2F..%2F..%2Frepertoire/fichier
%2F est la valeur encodée du « / »

Soit avec une notation Unicode :
http://domaine.com/..%u2216..%u2216repertoire/fichier
%u2216 est la valeur encodée du « / »


Comment se protéger contre les failles Traversal Directory ?


Pour se protéger contre ce type de faille il est indispensable de bien configurer son serveur web afin d'éviter à un utilisateur de naviguer sur des pages auxquelles il n'est pas censé avoir accès.

Quelques conseils :


  • Empêcher l'accès aux des pages situées en dessous de la racine du site web (mécanisme de chroot)

  • Désactiver l'affichage des fichiers présents dans un répertoire ne contenant pas de fichier d'index (« Directory Browsing »)

  • Supprimer les répertoires et fichiers inutiles (dont les fichiers cachés)

  • S'assurer que le serveur protège l'accès des répertoires contenant des données sensibles