Contournement de l’authentification par divulgation d’informations
Authentication bypass via information disclosure
L’interface d’administration de l’application comporte un mécanisme de contournement de l’authentification. Celui-ci repose sur un en-tête HTTP personnalisé utilisé par le front-end, mais inconnu a priori. Pour résoudre le laboratoire, il faut identifier le nom de cet en-tête, l’utiliser pour contourner l’authentification, accéder à l’interface d’administration et supprimer l’utilisateur carlos.
Accès initial à l’interface d’administration
Une tentative d’accès direct à la page d’administration via la route /admin retourne le message suivant :
Admin interface only available to local users
Cela indique que l’accès est restreint aux requêtes provenant de l’hôte local.

Divulgation d’informations via la méthode TRACE
En envoyant une requête HTTP avec la méthode TRACE vers /admin, le serveur renvoie davantage d’en-têtes que nécessaire.

Parmi ces informations, un en-tête personnalisé est révélé :
Cet en-tête est utilisé par le front-end pour déterminer si la requête provient d’un utilisateur local.
Contournement de l’authentification
En ajoutant l’en-tête suivant à une requête vers /admin :

le serveur considère la requête comme locale. L’interface d’administration devient alors accessible sans authentification supplémentaire.
Exploitation finale
Une fois connecté au panneau d’administration, il est possible de supprimer l’utilisateur ciblé en accédant à l’URL suivante :
Mis à jour