Day #25 of
#100DaysOfCyber | Lab : Exploiter une API grâce à sa documentation cachée
Hier,
@Elkha_D disait en commentaire de mon post qu'il fallait toujours protéger ou désactiver les routes de documentation en prod.
Aujourd'hui, j'en ai eu la preuve concrète en validant le lab de PortSwigger.
#L'objectif : supprimer l'utilisateur carlos.
#Problème : aucune option dans l'interface graphique.
J'ai donc dû passer en mode Reconnaissance d'API pour comprendre comment le backend fonctionne.
#Le déroulement de l'attaque :
➖ 1. J'ai lancé Burp Suite et analysé le trafic en manipulant le site, je suis tombé sur une route intéressante : /api/.
➖ 2. J'ai envoyé la requête dans le Repeater pour tester le comportement de l'API.
J'ai d'abord tenté /api/users pour lister tout le monde : erreur, le chemin n'existe pas.
➖ 3. En testant /api/user (sans ID), le backend me renvoie une erreur intéressante : "Malformed URL: expecting an identifier" OK, il attend un username précis. Je teste /api/user/mahmoud : "User not found". L'API fonctionne, mais je n'ai pas les bons noms.
➖ 4. J'ai continué à modifier mes requêtes petit à petit.
En testant simplement un GET sur /api, j'ai obtenu une redirection 302 vers /api/. J'ai copié ce lien dans mon navigateur : je suis tombé sur la documentation 👇