Sécurité Web:Attaques par Traversée de Répertoires.
QuID d'une attaque par traversée de répertoire?

Bien contrôler l'accès au contenu du Web est crucial pour le fonctionnement d'un serveur Web sécurisé. La traverse de Répertoire est un exploit HTTP qui permet aux pirates d'accéder aux répertoires restreints et exécuter des commandes à l'extérieur du répertoire racine du serveur web.

 

Les serveurs Web fournissent deux niveaux principaux de mécanismes de sécurité:

 * Access Control Lists (ACL).

* Répertoire racine.

 

repertoire

Une liste de contrôle d'accès est utilisée dans le processus d'autorisation. Il s'agit d'une liste que l'administrateur du serveur Web utilise pour indiquer quels utilisateurs ou groupes peuvent accéder, modifier ou exécuter des fichiers particuliers sur le serveur, ainsi que les droits d'accès correspondants.

 

Qu'est-ce qu'une attaque de traverse de répertoire?

Le répertoire racine est un répertoire spécifique sur le système de fichiers du serveur dans lequel les utilisateurs sont limités. Les utilisateurs ne sont pas en mesure d'accéder à quoi que ce soit au-dessus de cette racine.

Par exemple: le répertoire racine par défaut de IIS sous Windows est C: \ Inetpub \ wwwroot et avec cette configuration, un utilisateur n'a pas accès à C: \ Windows, mais a accès à C: \ Inetpub \ wwwroot \ et tous les autres répertoires et les fichiers dans le répertoire racine (à condition que l'utilisateur est authentifié via les ACLs).

Le répertoire racine empêche les utilisateurs d'accéder à des fichiers sensibles sur le serveur tels que cmd.exe sur plates-formes Windows et le fichier passwd sur plateformes Linux / UNIX.

Une vulnérabilité peut exister soit dans le logiciel de serveur Web lui-même ou dans le code de l'application Web.

Afin d'effectuer une attaque de traverse de répertoire, un attaquant n’a besoin que d’un navigateur web et une certaine dose de connaissance de l'endroit où trouver tous les fichiers et répertoires par défaut sur le système (ou le faire à l’aveugle).

 

Que peut faire un attaquant si votre site est vulnérable ?

Avec un système vulnérable à une attaque de traverse de répertoire, un attaquant peut utiliser cette vulnérabilité pour sortir du répertoire racine et d'accéder à d'autres parties du système de fichiers. Cela pourrait donner à l'attaquant la possibilité de visualiser des fichiers restreints, voire plus dangereux, ce qui permet à l'attaquant d'exécuter des commandes puissantes sur le serveur Web qui peut conduire à la compromission totale du système.

Selon la façon dont l'accès au site est mis en place, l'attaquant peut exécuter des commandes en se faisant passer pour l'utilisateur qui est associé au "site". Par conséquent, tout dépend de l’accès que ce site a donné à l'utilisateur dans le système.

 

Exemple d'une attaque de traverse de répertoire via le code d'application Web

Afin d'effectuer une attaque de traverse de répertoire, un attaquant a besoin d’un simple navigateur web et une certaine connaissance de l'endroit où (à l'aveuglette) il va trouver tous les fichiers et répertoires par défaut sur le système.

 

Exemple d'une attaque de traversée de répertoire via le code d'application Web

Dans les applications Web avec des pages dynamiques, l'entrée est généralement reçue des navigateurs par le biais méthodes GET ou POST. Voici un exemple d'une URL HTTP GET qui demande:

http://test.webarticles.com/show.asp?view=oldarchive.html

Avec cette URL, le navigateur demande la page show.asp dynamique à partir du serveur et l'envoie également le paramètre "view" avec la valeur "oldarchive.html". Lorsque cette requête est exécutée sur le serveur Web, show.asp récupère le fichier oldarchive.htm du système de fichiers du serveur, il rend, puis l'envoie au navigateur qui l'affiche à l'utilisateur. L'attaquant pourrait supposer que show.asp peut récupérer des fichiers sur le système de fichiers et envoie cette URL personnalisée:

http://test.webarticles.com/show.asp?view =.. /.. /.. /.. /.. / Windows / system.ini

Cela permet à la page dynamique de récupérer le fichier system.ini du système de fichier et l'afficher à l'utilisateur.
L'expression .. / indique au système d'aller plus haut répertoire qui est couramment utilisé en tant que système d'exploitation directive. L'attaquant doit deviner le nombre de répertoires qu'il doit aller jusqu'à trouver le dossier Windows sur le système, mais cela se fait facilement par essais et erreurs.


Exemple d'une attaque de traverse de répertoire via le serveur Web

En dehors de vulnérabilités dans le code, même le serveur Web lui-même peut être ouvert à des attaques par traverse de répertoire. Le problème peut être incorporé dans le logiciel de serveur Web ou à l'intérieur des fichiers de script d’exemple laissés disponibles sur le serveur.

La vulnérabilité a été corrigée dans les dernières versions des logiciels werver web, mais il y a des serveurs Web qui utilisent encore les anciennes versions de IIS et Apache qui pourrait être ouvert à des attaques par traversée de répertoire. Même s’il est rare que vous utilisez peut-être une version du logiciel Web werver qui a corrigé cette vulnérabilité, vous pourriez encore avoir certains répertoires sensibles exposés script par défaut qui sont bien connus pour les pirates.

Par exemple, une requête d'URL qui utilise le répertoire des scripts IIS sur de parcourir les répertoires et exécuter une commande peut être:

http://server.com/scripts/ ..% 5c../Windows/System32 /cmd.exe / c + dir + c: \

La demande devrait renvoyer à l'utilisateur une liste de tous les fichiers dans le répertoire C: \ en exécutant le fichier de commandes cmd.exe et exécutez la commande "dir c: \" dans le shell. L'expression% 5c qui se trouve dans la demande d'URL est un code d'échappement serveur web qui est utilisé pour représenter les caractères normaux. Dans ce cas % 5c représente le caractère "\".

Les nouvelles versions de logiciels serveur web moderne vérifier ces codes d'échappement pour ne pas les laisser passer. Certaines versions plus anciennes n'ont pas filtré ces codes dans le répertoire racine et laissent les attaquants exécuter ces commandes.

 

Comment faire pour vérifier les vulnérabilités de traverse de répertoire?

La meilleure façon de vérifier si votre site Web et les applications sont vulnérables aux attaques par traverse de répertoire est d'utiliser Acunetix Web Vulnerability Scanner. Un Scanner de vulnérabilités Web parcours votre site Web entier et vérifie automatiquement les vulnérabilités traversée de répertoire. Il rendra compte de la vulnérabilité et la manière de la fixer facilement..
Outre les vulnérabilités de traverse de répertoire, un scanner d'applications Web vérifie aussi pour l'injection SQL, Cross Site Scripting et autres vulnérabilités web.

Acunetix recherches sur le Web l’injection SQL, le Cross Site Scripting, les vulnérabilités de Google Hacking et beaucoup d’autres.

Prévention des attaques par traversée de répertoire

Tout d'abord, assurez-vous d'avoir installé la dernière version de votre logiciel de serveur Web, et s'assurer que tous les correctifs ont été appliqués.

Deuxièmement, filtrer efficacement toute saisie de l'utilisateur. Idéalement tout supprimer sauf les données connues de bonnes filtrations de caractères meta provenant de l'entrée de l'utilisateur. Cela permettra d'assurer que seul ce qui doit être saisie dans le champ sera soumis au serveur.

 

Vérifiez tout de suite si votre site est vulnérable à une attaque avec scanner Acunetix Web Vulnerability