Password reset broken logic
Last updated
Was this helpful?
Last updated
Was this helpful?
Begin by navigating to the login page and selecting the "Forgot password?" link. The application will prompt you to enter a username. Start by testing the reset process with your own account, using the username wiener
.
When going to the forget password page we find that it asks for a username so we type our account username wiener
and click submit
After submitting your username, an email is sent to your associated email account. This email contains a reset link, which directs you to a page prompting you to enter a new password twice.
Submit a new password, and intercept the request using Burp Suite. Carefully inspect the request payload. You will notice:
A temp-forgot-password-token
is included in both the header and the body of the request.
A username
parameter specifies which account’s password is being reset.
After analyzing the request, remove the temp-forgot-password-token
from both the header and the body. Resubmit the request. Observe that the server processes the request without validating the token. This indicates that the token isn’t required to reset the password.
First, request a password reset for Carlos by entering his username on the "Forgot password?" page.
Intercept the reset request for your own account (Wiener) and modify the username
field to carlos
. Update the new-password-1
and new-password-2
fields to the desired new password for Carlos (e.g., KruKnight
).
Send the modified request.
Navigate to the login page, enter carlos
as the username and the newly set password. You should successfully log in to Carlos’s account, confirming the exploit worked.