Challenges : IDOR et BOPLA Objectif Le barman d'API-ritif a laissé passer deux failles de l'OWASP Top 10 dans son API. À vous de les trouver, de les exploiter, puis de proposer une correction. Ces techniques sont à utiliser uniquement sur API-ritif, qui est faite pour ça. Sur une API réelle sans autorisation écrite, c'est un délit (article 323-1 du Code pénal). Les programmes de bug bounty existent pour ceux que ça passionne. Consignes 1 - IDOR : la commande du formateur Le formateur a passé une commande au bar, avec un message pour le barman. Ce message contient un flag. Passez une commande et observez son identifiant. Relisez le contrat : que devrait répondre GET /v1/orders/{order_id} pour une commande qui ne vous appartient pas ? Vérifiez si l'API respecte vraiment son contrat… Pas besoin de script : quelques requêtes curl bien choisies suffisent. Et si vous êtes tenté par une boucle, souvenez-vous du rate limiting. 2 - Bonus BOPLA : devenir barman Le Sudo Rhum est réservé aux barmans. Un client ordinaire ne peut pas le commander… en théorie. Regardez votre profil avec GET /v1/me . Quel champ décide de vos droits ? D'après le contrat, quels champs peut-on modifier avec PATCH /v1/me ? Et en pratique ? Commandez un Sudo Rhum. 3 - Corriger Pour chaque faille, rédigez la correction, en pseudo-code ou dans votre langage : quelle vérification manque, et où la placer ? comment l'empêcher de façon systématique, pour toutes les routes ? quel test automatique aurait détecté le problème ? 4 - Le débat : 403 ou 404 ? Une fois la faille IDOR corrigée, que doit répondre l'API quand on demande la commande de quelqu'un d'autre ? 403 Forbidden : c'est la vérité, la commande existe mais ne vous appartient pas. 404 Not Found : on ne révèle même pas son existence. Préparez vos arguments pour l'un et l'autre camp. Pensez à ce qu'un attaquant peut apprendre de chaque réponse. Résultat attendu Le flag IDOR (et le Sudo Rhum, pour les plus rapides). Vos propositions de correction, présentées à l'oral. Votre position argumentée dans le débat 403 ou 404.