Contournement par machine à états défaillante

Authentication bypass via flawed state machine

Ce laboratoire repose sur des hypothèses incorrectes concernant l’enchaînement des étapes du processus d’authentification. En exploitant cette machine à états mal conçue, il est possible de contourner l’authentification, d’accéder à l’interface d’administration et de supprimer l’utilisateur carlos.

Identifiants fournis :

  • Utilisateur : wiener

  • Mot de passe : peter

Observation principale

Le flux de connexion est découpé en plusieurs étapes successives, dont une étape intermédiaire de sélection de rôle.

L’application suppose que toutes les étapes sont exécutées dans l’ordre et que chaque requête a bien été validée avant de passer à la suivante.

Étapes de l’exploitation

  1. Connexion avec les identifiants valides wiener:peter.

  2. Après le login, l’application propose une étape de sélection de rôle.

  • Cliquer sur forward pour avancer dans le processus.

  • Au moment de la requête GET vers le role selector, intercepter la requête.

Ne pas laisser la requête partir : la bloquer ou la supprimer (drop).

  • C’est à cette étape que la validation du rôle est effectuée.

Continuer le flux sans cette validation.

Résultat

L’application considère à tort que toutes les étapes ont été correctement validées. L’utilisateur accède directement au panneau d’administration, sans avoir sélectionné ni validé de rôle légitime.

À partir de là, il est possible de supprimer l’utilisateur carlos et de valider le laboratoire.

Mis à jour