Scenario
A rapidly growing company launched a complete overhaul
of their carbon management platform.
Before a major marketing push, they required a
comprehensive security assessment to ensure
user data, and backend infrastructure were secure
from common and advanced threats.
Our approach
To avoid storing password data, the client opted to send
six-digit one-time passwords to
users' e-mail addresses when they attempted to log in. To prevent attacks from simply
brute-forcing the token, a rate-limit was implemented.
During testing, we discovered that by prepending the e-mail address in the JSON body with a
single space character,
it was possible to bypass the rate-limit and thus
try every possible token value for a
given e-mail address until the correct one was found. As proof of concept, we demonstrated
logging into an admin account belonging to one of the developers.
Outcome
As soon as we informed the client about this vulnerability in their web application,
they restricted access to the platform and worked non-stop until the issue was resolved.
We promptly performed a retest to verify proper remediation, and the client was able to
confidently carry on with their marketing push.