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.