Tromper le cache avec des délimiteurs dans le chemin

Exploiting path delimiters for web cache deception

Contexte

Lab : Exploiting path delimiters for web cache deception Objectif : récupérer la clé API de l’utilisateur carlos. Accès fourni : connexion possible avec wiener:peter. Aide : une liste de caractères délimiteurs possibles est fournie par le lab.

Observation initiale

  • Sur la page My account, on voit un panneau qui affiche clairement notre propre clé API.

  • En arrière-plan, l’accès normal déclenche une requête :

Dans ce cas, la réponse n’est pas servie depuis le cache (pas de comportement de cache visible/interprété).

Test des délimiteurs

  • En ajoutant un point-virgule ; dans le chemin, l’application interprète quand même la route vers my-account, mais cette fois avec un comportement de cache.

En utilisant Intruder, on vérifie plusieurs délimiteurs, et on constate que le point-virgule fonctionne.

Exemple de chemin valide :

  • /my-account;test.js

Exploitation

But : faire en sorte que la victime visite une URL “piégée” pour que la réponse de /my-account soit mise en cache, puis la relire avec une autre variante afin d’obtenir les données de carlos.

Depuis l’Exploit Server, on redirige la victime vers :

Récupération de la clé API

  • Ensuite, on modifie l’URL et on accède à :

    • /my-account;jordan.js

Cette réponse contient alors la clé API de carlos.

Mis à jour