Découverte et exploitation d’un endpoint API non utilisé

Finding and exploiting an unused API endpoint

L’objectif de ce laboratoire est d’exploiter un endpoint API caché afin d’acheter une Lightweight l33t Leather Jacket sans disposer de fonds suffisants. L’authentification se fait avec les identifiants suivants :

  • Utilisateur : wiener

  • Mot de passe : peter

Une fois connecté, on constate que le solde du compte est de 0 $.

Analyse du comportement de l’application

Lors de la consultation du produit, l’application envoie en arrière-plan une requête API pour récupérer son prix.

Requête utilisée pour afficher le prix

Réponse du serveur

Identification des méthodes HTTP disponibles

Une requête OPTIONS est envoyée afin d’identifier les méthodes autorisées sur cet endpoint.

Requête OPTIONS

Réponse

Le serveur indique que les méthodes suivantes sont autorisées :

  • GET

  • PATCH

Cela suggère qu’il est possible de modifier le prix du produit via une requête PATCH.

Modification du prix via PATCH

On tente alors d’actualiser le prix du produit en envoyant une requête PATCH avec un corps JSON.

Requête PATCH

Réponse du serveur

Le prix du produit est désormais fixé à 0 $.

Achat du produit

Une fois le prix modifié, il est possible d’acheter la Lightweight l33t Leather Jacket malgré l’absence de crédit sur le compte, ce qui permet de valider le laboratoire.

Mis à jour