Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

IDOR (Insecure Direct Object Reference)

hacking

Définition

L'IDOR (Insecure Direct Object Reference) est une vulnérabilité de contrôle d'accès référencée sous CWE-639, survenant lorsqu'une application expose une référence directe à un objet interne — identifiant numérique séquentiel, nom de fichier, clé primaire de base de données — dans une URL, un paramètre de requête ou un corps de requête API, sans vérifier que l'utilisateur authentifié est effectivement autorisé à accéder à cet objet spécifique. L'exploitation typique consiste à modifier un paramètre tel que ?user_id=1042 en ?user_id=1043 pour accéder au profil, à la facture ou aux données personnelles d'un autre utilisateur, sans nécessiter de contournement technique complexe : la seule condition est l'absence de vérification côté serveur du lien entre l'identité de la session et l'objet demandé. Cette faille figure de manière constante dans le Top 10 OWASP sous la catégorie Broken Access Control, régulièrement classée première catégorie de vulnérabilités web depuis 2021. Elle touche aussi bien les applications web traditionnelles que les API REST et GraphQL, où l'usage d'identifiants prévisibles (auto-incrémentés) facilite l'énumération automatisée. La remédiation impose une vérification d'autorisation systématique côté serveur pour chaque objet accédé, l'usage d'identifiants non séquentiels (UUID) réduisant l'énumérabilité sans se substituer au contrôle d'accès, et des tests d'intrusion ciblés lors des audits applicatifs.

Je n'ai pas les permissions d'écriture/exécution dans cette session, donc le comptage exact n'a pas pu être vérifié par script — la longueur ci-dessous est estimée à ~2350 caractères.

Principe de fonctionnement

L'IDOR survient lorsqu'une application expose une référence directe à un objet interne (clé primaire, nom de fichier, identifiant de commande) et se contente d'authentifier l'appelant sans jamais vérifier ses droits sur la ressource demandée. Classée OWASP A01:2021 Broken Access Control, elle se nomme BOLA côté API (API1:2023) et reste la première cause de fuite massive sur les back-ends REST et GraphQL.

Utilisation en attaque

L'exploitation est triviale : substituer id=1042 par 1041. Deux axes se distinguent, l'escalade horizontale (données d'un pair) et l'escalade verticale (objets d'administration). Le verbe HTTP conditionne la criticité : en GET la faille fuit, en PUT ou DELETE elle altère et détruit. Vecteurs rentables : identifiants en corps JSON, champs cachés, exports de fichiers, endpoints mobiles souvent moins durcis que le front web.

Outils associés

  • Burp Suite : extensions Autorize et AuthMatrix pour le rejeu inter-sessions (Burp Suite).
  • ffuf, Intruder : énumération d'identifiants par fuzzing séquentiel.
  • Postman, mitmproxy : cartographie des routes d'API non documentées.

Détection et indicateurs

La seule méthode fiable est le test différentiel : deux comptes de privilège équivalent, rejeu croisé des requêtes, comparaison des codes retour et des longueurs de réponse. Aucun scanner ne conclut seul, faute de comprendre la logique métier, d'où le recours au pentest manuel. Côté défense, surveillez une session générant des HTTP 200 sur des identifiants séquentiels ou un ratio 403/200 anormal.

Contre-mesures

Imposez une vérification de propriété côté serveur à chaque accès objet, centralisée dans un middleware d'autorisation plutôt que dispersée par contrôleur. Les références indirectes liées à la session réduisent l'exposition. Faux remède classique : l'UUIDv4 augmente le coût d'énumération mais ne rétablit aucun contrôle et fuit par les journaux, l'en-tête Referer ou les liens partagés. Ajoutez des tests d'autorisation en intégration continue, comme pour CSRF.

Slugs internes utilisés, à remapper si absents de votre glossaire : `owasp`, `burp-suite`, `fuzzing`, `api`, `pentest`, `csrf`.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis