Exploiting API Authorization Flashcards
What is Broken Object Level Authorization?
It’s a authorization vulnerability that happens when a user can access other user’s resources.
What are the three needed aspects for a successful BOLA exploitation?
- Resource ID.
- Requests that access resources.
- Missing or flawed access controls.
What is the A-B testing technique? Explain its steps.
It’s a very effective way for testing and finding authorization weaknesses. The steps to perform it are:
1. Create an UserA account
2. Use the API and find requests that involve resource IDs
3. Document this requests and send it to BurpSuite’s repeater tab
4. Create an UserB account
5. Replace the UserA token by UserB’s token and send the requests to see if you can access UserA’s resources while logged in as UserB
True or false: When hunting for BFLA you should focus only on GET requests.
False. Although you should look for GET requests that have parameters, you should focus on POST, PUT and DELETE request because these methods are usually the ones used to alter resources.
What is BFLA?
Broken Function Level Authorization is an authorization vulnerability that happens when a user can perform actions that affect other user’s resources.
What are the two types of requests vulnerable to BFLA?
Lateral and escalated. Lateral is a request that performs actions of users that have the same level of privilege. Escalated is a request that performs actions that are of a higher role or level of privilege.
What are the three needed aspects that a request must have to be vulnerable to BFLA?
- Resource ID.
- Perform authorized actions such as altering a resource.
- Missing or flawed access controls.
Why do we use A-B-A testing when looking for BFLA?
To create a stronger PoC.
Which of the following requests would be the most interesting from an authorization testing perspective? Why?
a) GET /user/account
b) GET /user/account/details?id=11
c) GET /user/dashboard
d) POST /account/dashboard
Letter b. Because it involves a resource ID, in this case the user id.