accueilLogicielsDéveloppement et Qualité LogicielsFailles de sécurité des applications Web
 

Défaillance dans la restriction des accès à une URL


1. Principe
2. Exemples d’attaque
3. Parade et bonnes pratiques

Principe

 Cette faille permet à un utilisateur d’accéder à des fonctionnalités de l’application, voire même des fichiers et répertoires du serveur http sans y être habilité.

 L’attaque par traversée de répertoires permet d’accéder à des fichiers du serveur http notamment ceux contenant les clés privées de chiffrement. Les applications vulnérables ouvrent des fichiers dont le nom est donné en paramètre de la requête http.

 Une autre attaque consiste à deviner l’existence de fichiers ou de répertoires. En effet de nombreux outils disposent d’une interface d’administration dont l’adresse d’accès est du type « http://www.site_vulnerable.fr/admin/admin.php ». Dans ce cas même si l’utilisateur malintentionné n’y a pas accès au travers de l’application, il peut saisir directement l’adresse pour l’ouvrir. Les applications vulnérables ne demandent pas de s’authentifier avant de pouvoir l’utiliser, la seule protection étant qu’aucun lien n’est mis à disposition pour y accéder, ce qui n’est pas suffisant.
Une attaque équivalente consiste à ne pas spécifier de nom de fichier dans l’adresse, par exemple « http://www.site_vulnerable.fr/admin/ ». Les serveurs http vulnérables afficheront le contenu du répertoire.

Exemples d’attaque

 L’exemple suivant montre une portion de code vulnérable à l’attaque par traversée de chemin. L’application est construite pour inclure du texte en fonction de la langue du navigateur. Dans ce cas la langue est donnée en paramètre de la requête http, la commande PHP « include lang_nom_fichier.php » permet d‘inclure le contenu du fichier concerné.

 Si l’attaquant envoie la requête avec le paramètre « lang=../../../../etc/passwd%00 », il aura accès au fichier des mots de passe du système et tentera de se connecter au serveur http avec un des comptes ainsi trouvé.
Dans cet exemple l’attaque par traversée de chemin est possible à cause de la faille Référence directe non sécurisée à un objet (voir paragraphe 3.5).

Parade et bonnes pratiques

 Pour se protéger des défaillances dans la restriction des accès à une URL, il ne faut pas autoriser les caractères douteux tels que « / » et « \ ».

 Pour se prémunir des attaques par traversée de chemin, il faut établir une liste de fichiers utilisables et refuser tout autre fichier. La correction à apporter à l’exemple ci-dessus est la suivante.

 Tous les répertoires doivent contenir un fichier index.html, ce qui évite de pouvoir accéder au répertoire lui-même. De plus, les serveurs http doivent être configurés pour ne pas permettre l’affichage du contenu des répertoires.

 Pour éviter les accès à des fonctionnalités sans autorisation, ces dernières doivent être protégées en vérifiant que l’utilisateur a le droit de les utiliser. Ne pas afficher de lien pour y accéder n’est pas une protection suffisante.

 

Retour vers le haut de la page   PDF
Article précédent Page d'accueil Article suivant
< Stockage de données cryptographiques non sécurisé Sommaire | Protection insuffisante de la couche transport >

 

Guillaume HARRY
Envoyer un courriel

 

Contenu sous licence Creative Commons CC-BY-NC-ND


ARESU
Direction des Systèmes d'Information du CNRS

358 rue P.-G. de Gennes
31676 LABEGE Cedex

Bâtiment 1,
1 Place Aristide Briand
92195 MEUDON Cedex



 

 

Direction des Systèmes d'Information

Pôle ARESU

Accueil Imprimer Plan du site Credits