Contournement du contrôle d’accès basé sur l’URL

URL-based access control can be circumvented

Dans cet exercice, le site possède un panneau d’administration situé à /admin, officiellement bloqué par un filtre frontal qui empêche tout accès externe. Cependant, l’application back-end utilise un framework qui reconnaît l’en-tête X-Original-URL, permettant ainsi de contourner la restriction.

Analyse et exploitation

En tentant d’accéder directement à /admin, l’accès est refusé. Pour contourner ce filtrado, il suffit d’intercepter une requête (par exemple vers la racine /) et d’y ajouter l’en-tête suivant :

Exemple de requête modifiée :

Le serveur back-end interprète cet en-tête et renvoie 200 OK, donnant accès au panneau d’administration.

Suppression de l’utilisateur

Pour supprimer l’utilisateur carlos, on forge une nouvelle requête en redirigeant l’URL interne grâce au même en-tête :

La suppression est alors effectuée avec succès.

Mis à jour