CORS — réflexion basique de l’origine

CORS vulnerability with basic origin reflection

Exploiter une configuration CORS trop permissive (le serveur fait confiance à n’importe quelle origine) pour récupérer la clé API de l’administrateur via une requête cross-origin avec credentials et envoyer la réponse vers notre serveur d’exploit. L’exercice est résolu quand la clé API administrateur est soumise à l’exploit server.

  • Identifiants fournis pour se connecter : wiener:peter.

  • Le code côté page récupère la clé API depuis /accountDetails et l’affiche :

Les en-têtes indiquent Access-Control-Allow-Credentials: true (le serveur accepte les requêtes avec cookies/credentials).

  • En testant une requête avec l’en-tête Origin: jord4n.pro, la réponse est retournée (l’origine réfléchie est acceptée).

  • Le serveur reflète/autorise l’origine envoyée, donc une page contrôlée par l’attaquant peut effectuer une XMLHttpRequest ou fetch vers /accountDetails en incluant les cookies de la victime (withCredentials = true) et récupérer la réponse JSON contenant la clé API.

Une fois la réponse lue, on peut la transmettre au serveur d’exploit (par ex. en encodant en base64) pour la récolte.

Le serveur d’exploit a reçu une requête GET contenant la réponse encodée, par exemple :

Mis à jour

Ce contenu vous a-t-il été utile ?