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