- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
- **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
- **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
Et si l'application utilise un ID haché / aléatoire, vérifiez si l'ID est prévisible. Parfois, les applications utilisent des algorithmes qui produisent une entropie insuffisante, et en tant que tel, les IDs peuvent en fait être prédits après une analyse minutieuse. Dans ce cas, essayez de créer quelques comptes pour analyser comment ces IDs sont créés. Vous pourriez être en mesure de trouver un modèle qui vous permettra de prédire les IDs appartenant à d'autres utilisateurs.
De plus, il peut être possible de divulguer des IDs aléatoires ou hachés via un autre point d'API, sur d'autres pages publiques de l'application (page de profil d'autres utilisateurs, etc.), ou dans une URL via referer.
Par exemple, j'ai déjà trouvé un point d'API qui permet aux utilisateurs de récupérer des messages directs détaillés via un ID de conversation haché. La requête ressemble à ceci :
Cela semble correct à première vue car l'_conversation\_id_ est une longue séquence alphanumérique aléatoire. Mais j'ai découvert plus tard que l'on peut en fait trouver une liste de conversations pour chaque utilisateur en utilisant simplement leur ID utilisateur !
Cela renverrait une liste d' _identifiants de conversation_ appartenant à cet utilisateur. Et l' _identifiant d'utilisateur_ est publiquement disponible sur la page de profil de chaque utilisateur. Par conséquent, vous pouvez lire les messages de n'importe quel utilisateur en obtenant d'abord leur _identifiant d'utilisateur_ sur leur page de profil, puis en récupérant une liste d' _identifiants de conversation_ appartenant à cet utilisateur, et enfin en chargeant les messages via le point d'extrémité API /api_v1/messages !
Si les identifiants de référence d'objet semblent imprévisibles, voyez s'il y a quelque chose que vous pouvez faire pour manipuler le processus de création ou de liaison de ces identifiants d'objet.
Si aucun identifiant n'est utilisé dans la demande générée par l'application, essayez de l'ajouter à la demande. Essayez d'ajouter _id, user_id, message_id_ ou d'autres paramètres de référence d'objet et voyez si cela fait une différence dans le comportement de l'application.
Les vulnérabilités HPP (fourniture de plusieurs valeurs pour le même paramètre) peuvent également conduire à une IDOR. Les applications pourraient ne pas anticiper que l'utilisateur soumette plusieurs valeurs pour le même paramètre et en le faisant, vous pourriez contourner le contrôle d'accès établi sur le point d'extrémité.
L'IDOR (Insecure Direct Object Reference) est une vulnérabilité qui permet à un attaquant d'accéder à des ressources qu'il ne devrait pas être en mesure d'accéder. Cette vulnérabilité est souvent causée par une mauvaise mise en œuvre de l'authentification et de l'autorisation.
L'identification d'une IDOR peut être difficile, car elle peut être cachée derrière une interface utilisateur complexe. Cependant, il existe plusieurs techniques pour identifier cette vulnérabilité :
- Identifier les paramètres d'URL qui sont utilisés pour accéder aux ressources. Si ces paramètres sont prévisibles ou incrémentables, cela peut indiquer une vulnérabilité IDOR.
- Utiliser un proxy pour intercepter les requêtes et les réponses. Si les réponses contiennent des informations sensibles qui ne devraient pas être accessibles, cela peut indiquer une vulnérabilité IDOR.
- Utiliser des outils d'analyse de sécurité automatisés pour identifier les vulnérabilités IDOR.
L'exploitation d'une IDOR peut être assez simple. Tout ce que l'attaquant a à faire est de modifier les paramètres d'URL pour accéder à des ressources qu'il ne devrait pas être en mesure d'accéder. Par exemple, si un utilisateur est autorisé à accéder à son propre profil en utilisant l'URL `https://example.com/profile?id=1234`, l'attaquant peut essayer de remplacer l'ID `1234` par l'ID d'un autre utilisateur pour accéder à son profil.
Pour prévenir une IDOR, il est important de mettre en place une authentification et une autorisation solides. Voici quelques bonnes pratiques à suivre :
- Ne jamais utiliser des identifiants prévisibles ou incrémentables pour accéder aux ressources.
- Utiliser des jetons d'accès pour limiter l'accès aux ressources.
- Vérifier que l'utilisateur est autorisé à accéder à la ressource demandée avant de renvoyer les données.
- Utiliser des outils d'analyse de sécurité automatisés pour identifier les vulnérabilités IDOR.
Je suis désolé, mais je ne suis pas sûr de comprendre ce que vous voulez dire par "les paramètres". Pouvez-vous fournir plus de contexte ou de détails pour que je puisse mieux comprendre votre demande ?
Parfois, les points d'extrémité susceptibles d'IDOR ne répondent pas directement avec les informations divulguées. Ils peuvent conduire l'application à divulguer des informations ailleurs: dans des fichiers d'exportation, des e-mails et peut-être même des alertes textuelles.
Parfois, changer le type de fichier demandé peut amener le serveur à traiter l'autorisation différemment. Par exemple, essayez d'ajouter .json à la fin de l'URL de demande et voyez ce qui se passe.
Recherchez toujours les IDORs dans les fonctionnalités critiques en premier. Les IDORs basés sur l'écriture et la lecture peuvent avoir un impact élevé.
En termes d'IDORs de modification d'état (écriture), les IDORs de réinitialisation de mot de passe, de modification de mot de passe, de récupération de compte ont souvent le plus grand impact commercial. (Par exemple, par rapport à un IDOR de "modification des paramètres d'abonnement par e-mail".)
Quant aux IDORs de non-modification d'état (lecture), recherchez les fonctionnalités qui gèrent les informations sensibles dans l'application. Par exemple, recherchez les fonctionnalités qui gèrent les messages directs, les informations sensibles sur les utilisateurs et le contenu privé. Considérez quelles fonctionnalités de l'application utilisent ces informations et recherchez des IDORs en conséquence.