Parcours de répertoire
Changez le nom du fichier, sortez du dossier, lisez n'importe quoi.
Qu'est-ce que Parcours de répertoire?
Un gestionnaire joint un nom de fichier de la requête à un répertoire fixe et lit tout ce qui se résout. Ajoutez quelques segments ../ et le résultat se trouve en dehors du dossier que le développeur avait en tête. Vous échangerez un nom de facture contre ../../../etc/passwd sur un point de terminaison de facturation et récupérerez le fichier de compte système. Ensuite, vous corrigez le problème : résolvez le problème sous forme canonique avec path.resolve et confirmez que le résultat est toujours dans le dossier prévu avant de lire un octet. Supprimer .. de la chaîne n’est pas la même vérification.
Ce que vous apprendrez dans Parcours de répertoire
- Reconnaître la traversée de répertoires comme le résultat de la jonction d'une entrée utilisateur sur un chemin de système de fichiers sans canonisation ni vérification de confinement
- Lire un gestionnaire et identifier le modèle de concaténation de chemin dangereux
- Comprendre pourquoi un filtre de chaîne qui rejette .. perd face aux segments codés et aux chemins absolus
- Appliquez le correctif canonicalise-then-verify : résolvez le chemin et confirmez qu'il reste dans le répertoire prévu avant de le lire.
- Auditez chaque fichier lu ou écrit dont le chemin est construit à partir des données de requête
Parcours de répertoire — Étapes de la formation
-
Trouver la fonctionnalité de téléchargement
Halvora est une plateforme de facturation et chaque client peut télécharger ses propres factures à partir d'une page en libre-service. Bob a un compte Halvora ordinaire. Il ouvre la fonction de téléchargement de la facture pour voir comment elle se comporte avant d'y toucher.
-
Télécharger une facture normale
Tout d’abord, observez le comportement normal de la fonctionnalité. Bob télécharge l'une de ses propres factures. Le fichier atterrit dans ses téléchargements et le panneau Réseau du navigateur enregistre la requête envoyée par la page, exactement ce qu'un développeur voit dans DevTools.
-
Le nom du fichier n'est qu'un paramètre
La facture est revenue. Un détail de la demande indique à Bob comment l'attaquer.
-
Trafiquer la demande et renvoyer
Bob n'a jamais eu besoin du bouton de téléchargement. Il modifie directement la demande capturée, en échangeant le nom de la facture contre un chemin qui sort de l'endroit où les factures sont stockées. Chaque ../ monte un répertoire ; un nombre suffisant d'entre eux atteignent la racine du système de fichiers, et à partir de là, etc/passwd est le fichier de compte que possède chaque machine Linux.
-
Le fichier revient
La réponse n'est pas une facture. Il s'agit du fichier de compte du serveur, lu sur le disque et restitué via le même téléchargement que la fonctionnalité offre à chaque client.
-
Contrôle des connaissances
Vous venez de voir une demande de téléchargement falsifiée renvoyer le fichier de compte du serveur. Verrouillez pourquoi.
-
L'alerte de violation
Vous possédez le service de téléchargement de factures de Halvora. Du jour au lendemain, la surveillance des pertes de données a signalé le point final renvoyant le contenu d'un fichier serveur à la place d'un fichier PDF. Les opérations de sécurité vous ont envoyé les détails par e-mail.
-
Ouvrez le gestionnaire de téléchargement
Ouvrez le gestionnaire de téléchargement et regardez comment il transforme le nom de fichier en fichier sur le disque.
-
Repérez le défaut
Le nom du fichier est concaténé dans le répertoire des factures et lu directement. Rien ne contraint le chemin, donc une valeur avec des segments ../ atteint l'extérieur du dossier.
-
Contrôle des connaissances
Avant de toucher au gestionnaire, expliquez clairement pourquoi le correctif rapide n'est pas la solution.
Couverture des référentiels de sécurité
OWASP Top 10
- A01:2025 Broken Access Control
- A01:2021 Broken Access Control
CWE
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security