Skip to main content

TP : La chasse au trésor

Objectif

Le barman d'API-ritif a caché un trésor quelque part dans son API. Pour le trouver, il faudra lire attentivement chaque réponse : codes de statut, headers, body… Rien n'est là par hasard.

Chaque étape franchie vous donne un flag : il se trouve dans le header de la réponse (X-Flag). Il y a 9 flags à activer.

TP noté, utilisation de curl ou bruno au choix

Consignes

Règles du jeu

Inscrivez-vous avec le pseudo prenom-nom, sans accents ni espaces (ex. : helene-dupre). C'est lui qui permet au formateur de vous noter : un pseudo fantaisiste, c'est un TP sans note.

  • Chaque réponse de l'API contient l'indice qui mène à l'étape suivante (header X-Hint). Lisez tout, y compris les headers (curl -i).
  • Quand vous franchissez une étape, la réponse contient son flag dans le header X-Flag, pas dans le body. Sans curl -i, vous ne verrez ni les flags ni les indices.
  • Dès que vous avez une clé d'API, soumettez chaque flag trouvé :
    curl -i http://api-ritif.portlatch.com/v1/hunt/flag \
      -H "X-API-Key: $KEY" \
      --json '{"code": "RITIF-XXXX-XXXXXXXX"}'

  • Les flags se valident dans l'ordre, et ne s'échangent pas : chaque flag (sauf le premier) est lié à votre clé.

Bloqué ? Relisez la page des codes de statut et celle des verbes HTTP. Un message d'erreur est souvent un indice.

Les 9 flags à activer

Chaque étape ci-dessous renvoie un flag dans le header de la réponse. Soumettez-les dans cet ordre :

  1. Lire les headers de l'accueil du bar.
  2. Vous inscrire comme client du bar.
  3. Vous présenter au barman : d'abord sans clé, puis avec.
  4. Trouver le cocktail secret de la carte et le consulter.
  5. Commander un thé.
  6. Commander un cocktail et suivre sa commande jusqu'à ce qu'elle soit prête.
  7. Annuler une commande à temps. Découvrez au passage ce que répond OPTIONS.
  8. Obtenir un cocktail en XML.
  9. Faire déborder le barman jusqu'au 429, respecter le délai demandé, puis refaire une requête.

Point de départ

Tout commence à l'accueil du bar :

curl -i http://api-ritif.portlatch.com/v1/

Le reste, c'est à vous de le trouver. Santé ! 🍹