Contournement du contrôle d’accès basé sur la méthode HTTP

Method-based access control can be circumvented

Dans ce laboratoire, les contrôles d’accès reposent en partie sur la méthode HTTP utilisée. Après s’être connecté avec les identifiants administrator:admin, on peut observer librement le panneau d’administration.

L’objectif est de se connecter avec les identifiants wiener:peter et d’exploiter la mauvaise implémentation du contrôle pour s’attribuer le rôle d’administrateur.

Après connexion en tant qu’administrateur, on découvre l’interface permettant d’augmenter ou de diminuer les privilèges d’un utilisateur. En interceptant la requête envoyée lors d’une modification :

on constate que cette action nécessite les droits admin lorsqu’elle est envoyée en POST.

Cependant, lorsque l’on tente de reproduire cette requête avec la session de wiener, l’application renvoie un message d’accès refusé.

En revanche, si l’on remplace la méthode POST par GET, le contrôle échoue :

Cette requête passe avec succès et retourne un 200 OK, ce qui permet d’élever les privilèges de wiener au rang d’administrateur.

Mis à jour