Bonjour à tous. Dans cette vidéo, nous allons parler du directory traversal, encore appelé path traversal, ou traversée de répertoire, ou encore traversée de chemin en français. [AUDIO_VIDE] Il s'agit d'une attaque exploitant les mauvais contrôles d'entrée utilisateurs, permettant à un attaquant, en se déplaçant dans l'arborescence du serveur, d'accéder à des fichiers auxquels il ne devrait pas avoir accès, les fichiers qui se situent en dehors de la racine du site Web, par exemple. Il s'agit donc d'obtenir des accès non prévus au système de fichiers à l'aide d'une application mal sécurisée. Cette attaque est aussi nommée dot dot slash ou point point slash. À l'aide de chemins de fichiers relatifs, par l'utilisation de point point slash, ou à l'aide de chemins absolus comme /etc/passwd, un attaquant peut accéder de manière arbitraire à des fichiers et des répertoires sur le système de fichiers. Parmi les fichiers, nous pouvons inclure par exemple le code source de l'application, ou des fichiers de configuration du système. Prenons un exemple applicatif. Considérons le site internet suivant, qui permet de rechercher un fichier. Nous pouvons voir, dans l'espace de saisie de l'URL, qu'il est à l'adresse localhost/~test/index.php. Lorsqu'un utilisateur recherche un fichier, la liste des fichiers s'affiche. Ici, nous allons rechercher des fichiers dont le nom contient le nom fichier. Le résultat est le suivant. Nous pouvons voir qu'il y a deux fichiers, et que l'adresse de la page courante est localhost/~test/index.php ?recherche=fichier. Celle-ci contient le mot clé que nous recherchons dans les noms des fichiers. Lorsqu'un utilisateur clique sur un lien, ici le nom du fichier, celui-ci s'ouvre en-dessous du champ de recherche comme ci-contre. Le texte « je suis un fichier publique » correspond au contenu du fichier nommé unFichierPublique. Nous voyons sur cette capture d'écran que l'URL est maintenant localhost/~test/index.php? article=unFichierPublique. Le nom du fichier à ouvrir est donc placé dans l'URL. Celui-ci est récupéré à l'aide de la méthode GET, pour ouvrir le fichier, comme nous le montre le code suivant. Il est donc possible de changer le nom du fichier à ouvrir pour faire ouvrir un fichier arbitraire aussi. Prenons, par exemple, le fichier passwd du système Unix. Ce fichier est le cas d'exemple typique, car il y a quelques années, les condensats ou hachés des mots de passe étaient stockés dans ce fichier. Dans les systèmes UNIX récents, cela n'est plus le cas, mais cela donne des informations sur les comptes utilisateurs du système. À l'aide de cette vulnérabilité, il est possible de naviguer sur le système de fichiers, mais aussi dans les répertoires du site internet, par exemple dans le répertoire admin. Il est possible, pour un attaquant, de tester des noms de répertoires ou de fichiers usuels. Nous venons de présenter l'attaque sur un système d'exploitation UNIX, ici une distribution [INAUDIBLE], mais celle-ci est réalisable sur un système Windows, où il est possible d'utiliser les caractères point point backslash, ou point point slash. Par contre, comme il n'existe pas de racine commune à toutes les partitions, l'attaque peut donc être limitée à une seule et unique partition. Afin d'optimiser les possibilités de réussite de l'attaque, il est aussi possible pour l'attaquant d'encoder les caractères. Par exemple, le point peut être encodé en pourcentage de e, le slash en pourcentage de f. Pour point point slash, cela donnerait %2, %2, %2f. Il est aussi possible de faire un mix de ces représentations, par exemple point point slash et écrire %2, %2/. Un autre exemple typique d'exploitation de vulnérabilité de type traversal directories est l'utilisation des cookies pour réaliser l'attaque. Supposons le code suivant. L'attaque consiste à envoyer au système la requête HTTP suivante, qui va initialiser la variable TEMPLATE avec le chemin vers le fichier passwd. Le serveur générera une réponse qui sera de la forme suivante. Si le système est vulnérable, l'attaquant aura extrait la liste des compte utilisateurs du système, ou n'importe quelle information demandée par la requête HTTP. Sur un ancien système, l'attaquant aura accès aux mots de passe contenus dans le fichier passwd. Il faut bien être conscient que, même si les mots de passe sont hachés, il est possible de les retrouver, surtout s'ils sont faibles. [AUDIO_VIDE] Nous venons de voir ce qu'est le type d'attaque par traversée de répertoire. Cette attaque, en exploitant des vulnérabilités dans la gestion du système de fichiers du serveur, peut permettre à un attaquant de récupérer des fichiers sensibles. Ceux-ci peuvent être par exemple des fichiers de mots de passe avec le .htpasswd, des fichiers de configuration qui peuvent indiquer des sécurités mises en place, ou des versions d'applications, par exemple. Il est important de se prémunir de ce type d'attaques. C'est ce que nous allons voir dans la prochaine vidéo.