Auteur : palkeo
Créé le : le 06/09/2008 à 15:40
Visualisations : 2985
Ce tutoriel est composé des parties suivantes :
Introduction
Dans ce tutoriel, je vais vous parler d'un problème de sécurité, appelé « directory listing » ou encore « directory transversal ».
Ça n'est pas vraiment une faille, mais c'est un problème de sécurité très répandu,
qui permet d'afficher tous les fichiers d'un répertoire
Le directory listing, c'est quoi ?
Tout d'abord, rappelons la structure d'une URL :
http://www.monsite.com/images/bonjour.png
Cela veut dire que vous utilisez le protocole
HTTP, que vous êtes sur
www.monsite.com, dans le répertoire
images, et que vous demandez le fichier
bonjour.png.
Comme vous le savez sûrement, les répertoires doivent contenir un fichier
index.html, ou
index.php par exemple, qui sera envoyé si un client souhaite voir un répertoire.
Par exemple, si vous demandez cette URL :
http://www.monsite.com/images/
Le serveur de
monsite.com va afficher le contenu du fichier
index.html situé dans le répertoire
images.
Et si il n'y a pas de fichier index.html ou index.php... dans le répertoire images ?
Justement, c'est là qu'il y a problème
En effet, si aucun fichier d'index n'est trouvé, le serveur va afficher la liste de tous les fichiers du répertoire ! Ce qui peut poser de gros problèmes de fuites de données "sensibles".
Voici un exemple de directory listing typique :
http://www.securite-info.org/tutos/directory_transversalExploitation
Comme vous devez vous en douter, vous trouverez rarement des liens vers un répertoire sans fichier d'index
Mais, vous pourrez trouver des liens vers des fichiers d'un répertoire.
Par exemple, si quelqu'un poste une image qui a pour URL :
http://www.monsite.fr/perso/avatar/avatar1.png
Il suffit de vous rendre sur
http://www.monsite.fr/perso/avatar/, et avec un peu de chance, vous pouvez obtenir la liste des fichiers du répertoire, voire même remonter dans le répertoire
perso et voir tout les fichiers personnels de l'auteur !
Ce problème de sécurité peut se révéler utile pour obtenir un maximum d'information sur un site Web.
Mine de rien, de très nombreux sites, même des sites qui font "pro", peuvent être vulnérables !
Protection
Abordons maintenant un point très important : la protection.
Je vais expliquer trois méthodes qui permettent d'éviter ce genre de problèmes :
Méthode 1 : index.html
Cette méthode est très simple, et consiste à mettre un fichier index.html contenant, par exemple, "Accès refusé" dans tous les répertoires ne possédant pas de fichiers d'index.
Méthode 2 : .htaccess
La seconde méthode, va permettre de désactiver l'indexation automatique sur tout votre site, ou seulement un répertoire.
Ainsi, si quelqu'un accède à un répertoire ne contenant pas d'index, il obtiendra une erreur 403.
Pour cela, il suffit de créer un fichier appelé
.htaccess contenant :
Code : .htaccess
Options -Indexes
Et voilà.
Il suffit que vous mettiez ce fichier à la racine de votre site web, et tout votre site sera protégé.
Mettez le dans un répertoire, et ce répertoire, ainsi que tous ses sous-répertoires seront protégés !
Méthode 3 : mod_autoindex
Cette méthode fonctionne uniquement sur les serveurs apache2, et la méthode donnée est pour un serveur sous GNU/Linux, et est valable uniquement si vous possédez un serveur dédié !
Cette méthode va permettre de désactiver complètement l'indexation automatique de votre serveur Web.
Pour cela, tapez, en root :
Console :
a2dismod autoindex
Puis redémarrez votre serveur Web...
Conclusion
Et voilà, vous savez désormais ce qu'est le directory transversal, et vous savez vous en protéger
Un conseil : essayez de tester cette faille dès que vous êtes dans un sous-répertoire d'un site web. A la fin, ça deviendra machinal, et vous vous rendrez compte du nombre de sites dans lequel on peut faire ça...