Web Security Academy

Access control - Lab : URL-based access control can be circumvented

Objectif :

  • Accéder au panel administrateur pour ensuite supprimer l'utilisateur nommé "Carlos". Les identifiants d'un compte utilisateur sont donnés : wiener / peter. Le back-end de l'application est construit avec un framework supportant l'en-tête "X-Original-URL".

Solution :

On lance le lab et on se retrouve sur un site de commerce.

On clique sur "Admin panel" mais le serveur nous bloque l'accès :

On va ressayer d'accéder à ce panel en modifiant judicieusement la requête envoyée au serveur : on va écrire l'URL sollicitée dans une entête "X-Original-URL" et la supprimer de l'emplacement d'origine :

Le serveur nous laisse accéder à l'interface administrateur ! Pour filter l'accès à cette interface, il vérifie seulement l'URL demandée dans l'emplacement d'origine et pas dans les entêtes.

Il suffit de réeffectuer la même opération pour supprimer le compte de Carlos :

Le lab est désormais résolu.