Navigation forcée
Une URL non liée ne constitue pas une vérification d'autorisation.
Qu'est-ce que Navigation forcée?
Un itinéraire existe, rien dans l’interface n’y renvoie et il répond à quiconque devine le chemin. La confidentialité des noms de dossiers n'est pas un contrôle d'accès. Sans compte, vous exécuterez une liste de mots de découverte de contenu sur une plate-forme de personnes et trouverez une route d'exportation interne répondant à 200 OK avec l'annuaire complet des employés, aucun cookie ou clé API n'est requis. Ensuite, vous ajoutez la porte qu'elle n'a jamais eue, une vérification de session et de rôle avant la lecture d'une seule ligne, et vous rejouez la demande sur un 403.
Ce que vous apprendrez dans Navigation forcée
- Distinguer la navigation forcée de l'élévation de privilèges : la première suppose qu'il n'y a pas de session, la seconde suppose la mauvaise session.
- Reconnaître qu'un segment de chemin comme <code>/internal/</code> ou <code>/admin/</code> est une convention, pas un contrôle, le gestionnaire est la porte
- Comprendre que les outils de découverte de contenu (ffuf, dirbuster, gobuster) rendent le secret du chemin inutile en quelques minutes
- Appliquer une vérification de présence de session et de rôle en haut de chaque gestionnaire qui lit ou écrit des données sensibles
- Auditez la base de code pour les routes orphelines fournies pour un outil, qui ont été remplacées et n'ont jamais été supprimées
Navigation forcée — Étapes de la formation
-
Évaluez la cible
Bob est un attaquant motivé par des raisons financières. Il trouve des entreprises qui ont laissé quelque chose exposé sur l'Internet public, puis vend ce qu'il retire ou l'utilise pour récupérer leur argent. Aujourd'hui, il cible Kelvara, une plateforme de ressources humaines sur laquelle les entreprises gèrent leur paie et leurs ressources humaines. Il commence là où n'importe qui le ferait, sur le site public, en évaluant l'entreprise avant de chercher un moyen d'y entrer.
-
Cartographier l'arborescence des API
Rien sur le site public n'est inhabituel : une connexion, une visite guidée du produit, une page d'assistance. Mais une application répond à bien plus de chemins qu’elle ne renvoie. Tout ce qu'un développeur a laissé accessible reste accessible à toute personne qui cherche, donc Bob cartographie chaque chemin auquel l'API du portail répond réellement.
-
Ouvrir la route d'exportation
Le seul chemin qui a répondu sans contestation est une URL comme les autres. Bob n'a besoin d'aucun outil pour cela : il tape le chemin découvert directement dans le navigateur et appuie sur Entrée, comme pour ouvrir n'importe quelle page.
-
Tout l'annuaire, pas de connexion
La réponse n'est pas une page d'erreur. Le navigateur le rend en ligne : l'intégralité du répertoire des employés de Kelvara, des milliers d'enregistrements, transmis à une requête qui ne comportait aucune connexion.
-
Contrôle des connaissances
Vous avez vu une URL devinée renvoyer des données sensibles à une requête sans informations d'identification. Déterminez pourquoi le point de terminaison était accessible.
-
L’alerte DLP débarque
Vous possédez le portail des personnes de Kelvara. Du jour au lendemain, la surveillance des pertes de données sortantes s'est déclenchée sur une réponse qui transportait hors du réseau l'annuaire complet des employés, numéros de sécurité sociale et salaires inclus. Les opérations de sécurité vous ont envoyé les détails par e-mail.
-
Ouvrez le gestionnaire d'exportation
Le gestionnaire qui crée l’exportation des employés est ce que vous devez modifier. Ouvrez-le et regardez ce qu'il fait entre l'arrivée de la requête et la sortie des données.
-
Repérez la porte manquante
Le gestionnaire lit chaque dossier d'employé et le renvoie. Lisez-le de haut en bas et recherchez le contrôle d'accès. Il n'y a rien entre la requête et la requête.
-
Contrôle des connaissances
Vous avez vu le gestionnaire s'exécuter de la requête aux données sans rien entre les deux. Verrouillez ce qui maintient réellement un itinéraire comme celui-ci privé.
-
Ajouter le contrôle d'accès
Mettez une vraie porte en haut du gestionnaire. Il résout la session de l'appelant, confirme qu'il détient le rôle hr_admin et rejette tout le reste avant l'exécution de la requête de base de données. Le chemin reste le même ; c'est désormais la vérification, et non le nom du dossier, qui protège les données.
Couverture des référentiels de sécurité
OWASP Top 10
- A01:2025 Broken Access Control
- A01:2021 Broken Access Control
CWE
- CWE-425 Direct Request ('Forced Browsing')
- CWE-862 Missing Authorization
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