Sélectionner une page

Le directory Lisiting – Le comprendre et le Corriger

19 Déc 2024 | Sécurité Web

Accueil » Sécurité Web » Le directory Lisiting – Le comprendre et le Corriger
Le directory listing (ou listing des répertoires) est une configuration du serveur qui permet d’afficher la liste des fichiers présents dans un répertoire lorsque celui-ci ne contient pas de fichier index (comme index.php ou index.html). Bien que cela puisse sembler anodin, cette fonctionnalité peut exposer des informations sensibles, surtout sur des sites WordPress. Dans cet article, nous allons expliquer en quoi consiste ce problème, ses impacts potentiels, et les solutions pour le résoudre.

Le directory listing : une vulnérabilité ?

Par défaut, les serveurs web comme Apache, NGINX ou LiteSpeed permettent souvent l’affichage des fichiers d’un répertoire s’ils ne trouvent pas un fichier index à afficher. Ainsi, si un utilisateur tente d’accéder à un répertoire comme https://example.com/uploads/, il pourrait voir une liste de fichiers accessibles publiquement.

Pourquoi cela pose-t-il problème ?

  1. Exposition de données sensibles :
    • Des fichiers de sauvegarde, des fichiers de configuration ou même des images contenant des données confidentielles pourraient être accessibles.
    • Par exemple, une sauvegarde de base de données dans un répertoire pourrait permettre à un attaquant de télécharger l’intégralité des données du site.
  2. Facilitation des attaques :
    • Les attaquants peuvent naviguer dans les répertoires pour trouver des failles, comme des scripts vulnérables ou des fichiers obsolètes laissés par des développements ou configurations antérieures.
  3. Violation des bonnes pratiques de sécurité :
    • Laisser des fichiers visibles dans les répertoires d’un site web est une faille connue et évitable, souvent considérée comme un manque d’attention à la sécurité.

Ce problème est-il spécifique à certains types de sites web ?

Non, le directory listing est un problème générique des serveurs web. Voici quelques cas où ce problème peut survenir :

  1. Applications web personnalisées :
    • Les frameworks ou applications développées sur mesure peuvent également exposer leurs répertoires si le serveur n’est pas configuré correctement.
  2. CMS (systèmes de gestion de contenu) :
    • Les CMS comme WordPress, Joomla, Drupal, ou Magento sont aussi vulnérables si le serveur web autorise l’indexation.
  3. Serveurs mal configurés :
    • Un problème de configuration du serveur (Apache, NGINX, LiteSpeed, etc.) peut activer l’indexation, même en dehors d’une plateforme spécifique.

Comment détecter ce genre de problème ?

1. Test manuel avec un navigateur

  • Accédez à des répertoires connus de la structure de votre site comme :
    • /uploads/
    • /assets/
    • /config/
  • Si une liste de fichiers apparaît, le directory listing est activé.

2. Utilisation d’outils automatisés

Des outils de sécurité peuvent scanner votre site pour détecter ce type de vulnérabilité. Voici quelques-uns des plus efficaces :

  • OWASP ZAP :
    • ZAP (Zed Attack Proxy) est un outil gratuit et open-source qui permet d’identifier des problèmes comme le directory listing.
    • Vous pouvez exécuter un scan passif pour vérifier si des répertoires sont listés.
    • Fonctionnement :
      1. Configurez ZAP pour scanner votre site.
      2. Consultez les alertes générées (recherchez celles qui mentionnent le listing des répertoires).
  • Nmap avec des scripts NSE :
    • Nmap peut détecter l’indexation des répertoires si des scripts NSE spécifiques sont utilisés.
    • Commande : nmap --script http-enum -p 80,443 votre-site.com
  • Burp Suite :
    • Burp Suite peut effectuer des scans actifs pour détecter l’activation du directory listing.
  • Nikto :
    • Nikto est un scanner de serveur web qui peut détecter automatiquement des répertoires avec l’indexation activée.

3. Vérification des journaux du serveur

Si vous avez accès aux logs du serveur, cherchez des requêtes HTTP indiquant une navigation dans des répertoires, comme :

GET /uploads/ HTTP/1.1

4. Scanner avec des scripts personnalisés

Vous pouvez créer un script Python ou Bash qui teste plusieurs répertoires courants pour vérifier si une liste de fichiers est retournée.

Exemple avec Python :

import requests

url = "https://votre-site.com/uploads/"
response = requests.get(url)

if "Index of" in response.text:
    print(f"Le listing de repertoire est actif sur {url}")
else:
    print("Le listing de repertoire est inactif sur  {url} .")

Comment désactiver le directory listing ?

Heureusement, il est facile de désactiver le listing des répertoires en modifiant la configuration du serveur.

1. Modifier le fichier .htaccess (serveur Apache ou LiteSpeed)

Ajoutez la directive suivante dans le fichier .htaccess à la racine de votre site ou dans le répertoire concerné :

# Désactiver le listing des répertoires
Options -Indexes

2. Ajouter un fichier index.html vide

Créez un fichier index.html vide dans les répertoires sensibles pour empêcher l’affichage des fichiers.

3. Modifier la configuration du serveur NGINX

Si votre site est hébergé sur un serveur NGINX, ajoutez cette directive dans le fichier de configuration du site :

location /uploads/ {
    autoindex off;
}

Redémarrez NGINX après la modification :

sudo systemctl restart nginx

4. Vérifier les permissions des fichiers

  • Répertoires : 750
  • Fichiers : 640

Cela limite l’accès direct à vos fichiers et répertoires.

Résultat attendu après la correction

Une fois les changements appliqués, toute tentative d’accès à un répertoire comme /uploads/ devrait afficher une erreur 403 Forbidden ou un autre message indiquant que l’accès est bloqué.

Conclusion

Le directory listing peut sembler inoffensif, mais il représente une porte d’entrée importante pour des attaquants cherchant à exploiter les failles d’un site web. En suivant les étapes décrites dans cet article, vous pouvez sécuriser efficacement votre site contre ce type de vulnérabilité.

Pour détecter ces failles, des outils comme OWASP ZAP, Nmap, ou encore Burp Suite peuvent être intégrés dans vos processus de sécurité. La sécurité d’un site web n’est pas une option, c’est une priorité. Agissez dès maintenant pour protéger votre site !

Plus d’infos sur Wp-assitance – Le directory listing

Lire nos autres conseils pour un site web éco responsable

La faille XML-RPC – La Comprendre et la Sécuriser

La faille XML-RPC – La Comprendre et la Sécuriser

Pourquoi désactiver xmlrpc.php ? Si vous êtes propriétaire d’un site WordPress, sachez que le fichier xmlrpc.php peut être exploité par des attaquants pour des attaques par force brute ou par déni de service distribué (DDoS). Ces problèmes peuvent survenir si votre...

Les catégories vides – quels impacts pour votre visibilité

Les catégories vides – quels impacts pour votre visibilité

L'Impact Négatif des Catégories Vides dans WordPress pour un site web éco-responsable Vous souhaitez réduire l'impact environnement de votre entreprise grâce à un site web éco-responsable? L'écoconception web vise à créer des sites performants et respectueux de...

L’Optimisation Vidéo, pourquoi est-ce une nécessité ?

L’Optimisation Vidéo, pourquoi est-ce une nécessité ?

Qu'est-ce que HandBrake et Pourquoi l'Utiliser pour Site Web Éco-Responsable? HandBrake est un logiciel vidéo open-source, gratuit et polyvalent qui va vous être utile lors du développement d'un Site Web Éco-Responsable. Sa capacité à réduire considérablement la...