HTTP verb tampering results in administrator role to the application
Be very clear about GET/POST/PUT/PATCH traffic
A pretty fun vulnerability that involves HTTP verb tampering and guessing roles to send over.
In the normal business workflow, the application only sends GET
requests. However, when I tried sending a PUT request
, it turns out I can create and even modify data on the server!
This allowed me to create my own organization. But that was not enough. I could specify roles this organization had, and by educated guesses, sending an admin
role made me an administrator to wreak havoc.
Below is the redacted and modified report that was accepted as a high severity vulnerability.
Summary:
The API at https://<REDACTED>/orgs
allows low privileged users to send PUT
requests, resulting in a new creation of organizations.
The attacker can send a PUT
request with the value admin
in the roles
option to create an administrator organization, giving the attack administrator access to the application.
Once there, the attacker can create fake products, or access personal information of all users such as emails, names and phone numbers.
Steps To Reproduce:
Register and login as a regular user
Send a
PUT
request tohttps://<REDACTED>/orgs
with the following body
Once done, you will have access to
https://<REDACTED>/administrator
page where you can create productsTo create a new product, you have to intercept the request to create a product, and enter the org id you created earlier.e.g.in step 2, if you used
spoofed org
as the<SPOOFED ORG>
value, you have to usespoofed org
in this requestChange the product status to be
LIVE
so other victims may view and purchase the productsLogging in as a victim user, the product can be viewed, added to cart, and checked out
Alternatively, the attacker can access the database to access information about all the users such as emails, names and phone numbers.
Impact
The attacker can create a fake organization with administrative capabilities, access admin functions
The attacker can create bogus products for victims to purchase.
The attacker as an administrator can also access the database to view information about all users
This violates Confidentiality as user information such as emails and names are leaked
This also violates Integrity, because the attacker can spoof as an admin to create fake products, and also to create multiple fake organizations.
Last updated