Web Security Academy

Directory traversal - Lab: File path traversal, validation of file extension with null byte bypass

Objectif :

  • Récupérer le contenu du fichier /etc/passwd dans le serveur distant.

Solution :

On lance le lab et on se retrouve sur un site de commerce avec plusieurs articles illustrés.

Pour commencer, on va inspecter les requêtes envoyées et reçues depuis le serveur par rapport aux différentes fonctionnalités du site.

On recharge la page d'accueil et on constate que pour charger une image correspondant à un produit, une requête GET est envoyée au serveur avec comme paramètre le chemin du fichier lié à l'image dans le système de fichiers du serveur:

On va d'abord essayer de remplacer le nom de l'image par "/../../../etc/passwd". Le serveur nous répond que le fichier demandé n'a pas été trouvé :

Il se peut que le serveur vérifie que le nom du fichier inscrit dans le paramètre possède l'extension .jpg ou .png ( une extension liée à une image ). On peut essayer de contourner cette restriction en ajoutant un null-byte avant l'extension du fichier : /../../../etc/passwd%00.jpg.

On soumet au serveur ce payload et le serveur nous retourne le fichier demandé :

Le lab est désormais résolu.