Products

Solutions

Resources

/

/

IDOR by adding user id in query params

IDOR by adding user id in query params

Attacker can access resources of any user by adding user_id in URL.

Broken Object Level Authorization (BOLA)

Business Logic

"The endpoint appears to be vulnerable to broken object level authorization attack. The original request was replayed by adding other user's user id in query params. The server responded with 2XX success codes and less than <b>{{percentageMatch}}%</b> of the response body matched with original response body. <br>" "<b>Background:</b> Object level authorization is an access control mechanism that is usually implemented at the code level to validate that one user can only access objects that they should have access to."

"The endpoint appears to be vulnerable to broken object level authorization attack. The original request was replayed by adding other user's user id in query params. The server responded with 2XX success codes and less than <b>{{percentageMatch}}%</b> of the response body matched with original response body. <br>" "<b>Background:</b> Object level authorization is an access control mechanism that is usually implemented at the code level to validate that one user can only access objects that they should have access to."

Impact of the vulnerability

Impact of the vulnerability

Unauthorized access can result in data disclosure to unauthorized parties, data loss, or data manipulation. Unauthorized access to objects can also lead to full account takeover.

Unauthorized access can result in data disclosure to unauthorized parties, data loss, or data manipulation. Unauthorized access to objects can also lead to full account takeover.

How this template works

APIs Selection

The template uses API selection filters to specify the criteria for selecting the API requests to be executed. In this case, the filters include checking the response code to be between 200 and 300, and extracting the value of the "user" or "customer" parameter as the "user_context" for further use.

Execute request

The template uses a single request execution type, which means it will execute a single API request. The request is defined using the "add_query_param" action, where the value of the "user_context.key" is set to the extracted value from the API selection filters.

Validation

After executing the request, the template performs validation on the response. It checks that the response code is between 200 and 300, and also checks the response payload for two conditions. Firstly, it checks that the percentage match of the response payload with the original response payload is less than 50%. Secondly, it checks that the length of the response payload is greater than 0.

Frequently asked questions

What is the purpose of the "add_query_param" request in the test

How is the "user_context" parameter extracted from the request

What is the purpose of the "response_code" filter in the validation step

What does the "percentage_match" validation check for in the response payload

How is the length of the response payload validated

What is the purpose of the "BOLA" category and "ADD_USER_ID" subcategory in the array

Loved by security teams!

Loved by security teams!

Product Hunt Badge

"We are absolutely thrilled with the testing feature of Akto. We have used it on our graphQL endpoints and it performs flawlessly identifying common API security issues. It's truly a game-changer and we highly recommend Akto to anyone looking to effortlessly secure their API endpoints. With a user-friendly interface, it's the perfect solution for anyone looking to embrace custom rules with context to reduce false positives."

Loom Company logo

Security team,

Loom

"We are absolutely thrilled with the testing feature of Akto. We have used it on our graphQL endpoints and it performs flawlessly identifying common API security issues. It's truly a game-changer and we highly recommend Akto to anyone looking to effortlessly secure their API endpoints. With a user-friendly interface, it's the perfect solution for anyone looking to embrace custom rules with context to reduce false positives."

Loom Company logo

Security team,

Loom

"The text editor in Akto is absolutely remarkable. Its user-friendly YAML format strikes the perfect balance between simplicity and power. With intuitive features like 'API selection filter', 'Execute', Validate' creating test rules becomes incredibly easy. Akto's test editor is a game-changer, enabling seamless creation of highly personalized and effective tests that could meet the needs of any modern day organization. "

Rippling Company logo

Security team,

Rippling

Suggest API security tests

Suggest API security tests

We're actively building the test library. Suggest a test! If we like your suggestion, you will see it in the library in few days.

We're actively building the test library. Suggest a test! If we like your suggestion, you will see it in the library in few days.