Race Condition

Description

L'application était une application Web avec 3 niveaux de rôles (administrateur, un utilisateur spécifique utilisé pour un usage spécifique et des utilisateurs normaux). L'authentification pour les utilisateurs normaux était sans mot de passe. Pour s'authentifier, un lien magique était envoyé par e-mail et générait un jeton spécifique et unique pour une courte période de temps. Cette fonction était vulnérable à une vulnérabilité de condition de concurrence conduisant à générer exactement le même jeton pour différents utilisateurs lors de l'envoi de la requête en simultané.

Exploitation

  • J'ai capturé la requête de demande de magik link via burp*

  • J'ai fait un click droit sur la requête puis "copy as curl command"

  • Sur un terminal j'ai collé la requête pour mon utilisateur puis ajouté un "&" afin de lancer la commande en arrière plan puis collé une nouvelle fois la requête en changeant le nom d'utilisateur pour la seconde requête.

  • J'ai lancé les commandes puis me suis rendu sur mes boîtes de reception afin de vérifier les token généré.

  • Les token étaient identiques pour les deux utilisateurs.

Risques

Générer exactement le même jeton de connexion pour de nombreux utilisateurs peut entraîner une prise de contrôle de compte en masse.

Last updated