HexBrain

Staging.every.org · Report #838572

No Rate Limit On Reset Password

Validstatus
mediumseverity
39upvotes
17 Jul 2020disclosed

How it was found

Summary:

A rate limiting algorithm is used to check if the user session (or IP address) has to be limited based on the information in the session cache. In case a client made too many requests within a given time frame, HTTP servers can respond with status code 429: Too Many Requests. (wikipedia) I just realize that on the reset password page, the request has no rate limit which then can be used to loop through one request.

Steps To Reproduce:

  1. Go to https://staging.every.org/resetPassword , enter the email then click reset password
  2. Intercept this request in burp suite

POST /dbconnections/change_password HTTP/1.1 Host: login.every.org User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0 Accept: / Accept-Language: id,en-US;q=0.7,en;q=0.§3§ Accept-Encoding: gzip, deflate Content-Type: application/json Auth0-Client: eyJuYW1lIjoiYXV0aDAuanMiLCJ2ZXJzaW9uIjoiOS4xMS4xIn0= Content-Length: 130 Origin: https://every.org Connection: close Referer: https://every.org/resetPassword

{"client_id":"1bT892TGga38o0GFw5EusmGnV9b3kjCq","email":"[email protected]","connection":"Username-Password-Authentication"}

  1. Send it to the intruder and repeat it by 50 times
  2. You will get 200 OK status
  3. I already attached the PoC video too if you don't understand my explanation

Supporting Material/References:

[list any additional material (e.g. screenshots, logs, etc.)] https://hackerone.com/reports/751604 https://hackerone.com/reports/441161 https://hackerone.com/reports/280534

Suggested fix

Use CAPTCHA verification if many request sent.

Impact

Trouble to the users on the website because huge email bombing can be done by the attackers within seconds.

This report was disclosed publicly on HackerOne and belongs to its author and the program. See the original