Path Traversal

Un paramètre. Des fichiers exposés.

Manipulez un paramètre de chemin pour remonter l'arborescence serveur et lire des fichiers sensibles — /etc/passwd, .env, clés SSH.

  • 6 payloads prêts
  • Résolution animée
  • Arborescence serveur
  • Encodage URL

Simulation pas à pas

Suivez l'attaque étape par étape

api.entreprise.fr/document?file=rapport_Q1.pdf
Portail Documents
GET/document?file=rapport_Q1.pdf
Host: api.entreprise.fr

Répertoire de travail :

/var/www/html/uploads/

Chemin résolu :

/var/www/html/uploads/rapport_Q1.pdf

✓ Fichier trouvé — 200 OK

rapport_Q1.pdf · 847 Ko

Comportement normal — le fichier demandé existe dans le répertoire attendu
Étape 1 sur 4

Un paramètre de fichier dans l'URL

L'application charge un fichier dont le nom est fourni directement dans le paramètre ?file=

Chaque paramètre de chemin est une surface d'attaque

Quand une application concatène directement l'entrée utilisateur dans un chemin de fichier sans validation, elle fait confiance à l'input. Un attaquant peut fournir n'importe quel chemin — y compris des séquences ../ pour remonter l'arborescence du serveur.

Chiffres clés

Quelques ../ suffisent à sortir du dossier

OWASP Broken Access Control

#0

inclut le Path Traversal (A01:2021)
Pour exploiter un endpoint

0 sec

avec un payload ../../../ basique
Des payloads encodés

0 %

%2e%2e contournent les filtres naïfs sur '../'

Protection

Comment s'en protéger

Un chemin de fichier ne doit jamais être construit à partir d'une saisie utilisateur brute.

  • Référencer par identifiant

    L'utilisateur demande un identifiant de document ; le serveur retrouve lui-même le fichier correspondant.

  • Canonicaliser puis vérifier

    Résolvez le chemin réel (realpath) et vérifiez qu'il reste dans le répertoire autorisé avant de l'ouvrir.

  • Liste blanche stricte

    N'acceptez que les noms et extensions attendus ; rejetez ../, les chemins absolus et les variantes encodées.

  • Moindre privilège

    Le processus web ne peut lire ni les fichiers système, ni les secrets, ni les clés du serveur.

Démo technique

Testez par vous-même

Manipulez le paramètre de chemin, observez la résolution pas à pas dans l'arborescence et visualisez les fichiers sensibles exposés par le serveur vulnérable.

Démonstration interactive

Simulateur Path Traversal

Manipulez le paramètre de chemin pour sortir du répertoire autorisé et accéder à des fichiers sensibles sur le serveur.

Simulation

Payloads prêts à l'emploi

GET https://forenshield.com/assets/documents/report.pdf

Base autorisée

/var/www/forenshield/public

URL demandée

https://forenshield.com/assets/documents/report.pdf

Chemin résolu

/var/www/forenshield/public/documents/report.pdf

Fichiers ciblés

  • ·/etc/passwd
  • ·/etc/shadow
  • ·/.env
  • ·/config/database.json
  • ·/root/.ssh/id_rsa

Pourquoi c'est critique

Une seule variable de chemin non filtrée permet de sortir du dossier web et de lire des secrets, des credentials ou des clés privées.

Défense

  • ·Valider et normaliser les chemins côté serveur
  • ·Rejeter toute séquence '../' ou encodage URL suspect
  • ·Utiliser une allowlist de fichiers autorisés
  • ·Ne jamais concaténer dynamiquement un chemin utilisateur

FAQ

Questions fréquentes

Qu'est-ce qu'une attaque Path Traversal (Directory Traversal) ?

Le Path Traversal (ou Directory Traversal) est une vulnérabilité qui permet de lire des fichiers en dehors du répertoire web autorisé, en utilisant des séquences ../ dans les paramètres. Ex: /download?file=../../../etc/passwd permet de lire le fichier de mots de passe Linux depuis une application web.

Quels fichiers sont ciblés par une attaque Path Traversal ?

Les fichiers ciblés sur Linux/Unix : /etc/passwd (comptes système), /etc/shadow (hashes de mots de passe), /proc/self/environ (variables d'environnement avec secrets), .env (clés API, mots de passe). Sur Windows : C:\Windows\System32\drivers\etc\hosts, web.config, .htaccess avec identifiants.

Comment prévenir les attaques Path Traversal ?

Prévention du Path Traversal : valider et normaliser les chemins de fichiers (supprimer les séquences ../), utiliser des identifiants indirects plutôt que des noms de fichiers dans les URLs, restreindre les permissions d'accès fichiers (chroot jail), et ne jamais passer des noms de fichiers fournis par l'utilisateur directement aux fonctions d'ouverture de fichiers.

Comment les attaquants contournent-ils les filtres anti-traversal ?

Les techniques d'évasion incluent : l'encodage URL (%2e%2e%2f pour ../), le double encodage (%252e%252e%252f), les variations de séparateurs (..\, ../, ..%5c sur Windows), les null bytes (%00) pour tronquer l'extension, et les répétitions ....// qui se réduisent en ../ après normalisation.

Formez vos équipes avec un expert

Ateliers de sensibilisation sur mesure, simulations d'attaques et formations pour ancrer les bons réflexes dans votre organisation.