Web Security Academy

Directory traversal - Lab : File path traversal, traversal sequences stripped with superfluous URL-decode

Objectif :

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

Solution :

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

Premièrement, 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 nom de l'image dans le système de fichiers du serveur:

On va remplacer la valeur du paramètre filename par "/../../../etc/passwd". Le serveur nous répond en retour qu'il ne trouve pas le fichier :

La séquence "../" est sans doute filtrée.

Maintenant, on va essayer d'utiliser un double encodage URL avec le payload suivant : "..%252f..%252f..%252fetc/passwd" pour contourner la mesure de sécurité. Le serveur nous retourne en effet le fichier demandé :

Le lab est désormais résolu.