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