Parcours de répertoire

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

Parcours de répertoire — Étapes de la formation

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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