Sitemap
A_box4

A_box4

Authentication Bypass via Password Reset Flow Manipulation

3 min read3 days ago

--

Press enter or click to view image in full size

قَالُوا سُبْحَانَكَ لَا عِلْمَ لَنَا إِلَّا مَا عَلَّمْتَنَا ۖ إِنَّكَ أَنتَ الْعَلِيمُ الْحَكِيمُ

Introduction

Authentication mechanisms are designed to ensure that only legitimate users can access their accounts. One of the most critical components of this process is the password reset functionality, which should strictly verify that a user has successfully completed the required verification steps before allowing a password change.

During security testing of Target account recovery functionality, an authentication bypass vulnerability was identified in the password reset flow.

The issue involved improper server-side validation of security-related parameters in the password reset confirmation request. By manipulating these parameters, it was possible to bypass the intended validation process and successfully change the account password without the expected security checks.

Vulnerability Details

The vulnerability was identified in the following endpoint:

  • Host: account.target.com
  • Endpoint: POST /login/reset_confirmation
  • Vulnerability Type: Authentication Bypass
  • CWE: CWE-288 — Authentication Bypass Using an Alternate Path or Channel

During the password reset process, the application sends a POST request containing several parameters, including:

  • password: The new password.
  • confirmPass: Password confirmation.
  • requestDigest: A security-related request validation value.
  • request_token: A request validation token.

The application appeared to accept the request even when both requestDigest and request_token were explicitly set to null.

Get A_box4’s stories in your inbox

Join Medium for free to get updates from this writer.

This indicated that the server was not properly enforcing the validation of these security-related parameters before processing the password reset operation.

Steps to Reproduce

  1. Navigate to the Target login page: `https://account.Target.com/login `
  2. Select the Reset Password option.
  3. Enter the email address associated with your authorized test account.
  4. Open the password reset link and navigate to the password creation page.
  5. Enter a new password and confirm it.
  6. Open Burp Suite and enable Intercept.
  7. Click the Reset Password button and intercept the following request: `POST /login/reset_confirmation `
  8. Locate the following parameters in the request body.
Press enter or click to view image in full size

Original request:

password=NewPassword123%40&confirmPass=NewPassword123%40&requestDigest=[VALID_DIGEST]&request_token=[VALID_TOKEN]
Press enter or click to view image in full size

9. Modify the security-related parameters by replacing their values with null.

password=NewPassword123%40&confirmPass=NewPassword123%40&requestDigest=null&request_token=null

10. Forward the modified request to the server.

11. Observe that the password reset operation is successfully processed despite the modified parameters.

12. The test account’s password is changed, and the application authenticates the user and redirects them to the internal dashboard.

Impact

Improper validation of password reset security parameters can have severe security consequences.

An attacker who can exploit this behavior may be able to bypass the intended password reset verification mechanism and gain unauthorized access to a victim’s account.

Written by A_box4
CTF Player | Bug hunting | web pentest

contact me:

‏Ayman Hany‏ | LinkedIn

--

--