IDOR
IDORs are mainly found in web applications and APIs that rely on user-supplied input to access objects directly.
In an IDOR attack, a bad actor would be able to access data that they're not authorised to see, leading to unauthorised data exposure.
Overview
Detection: One needs to identify end-points where user input is used to reference or access internal objects. This can be done by fuzzing, or just studying the application's behaviour.
Exploitation: When an IDOR vulnerability is found, one could edit the object that is being referenced by another value.
Examples and Common Attacks
URL parameter reference
A user called 123
can access their page (that contains all their private data) with the following URL:
One could change 123
to 124
and it will show the profile of 124
.
Issue: The application directly takes the URL and fetches user details without verifying user sessions or without verifying if the given user has access to the URL.
File access
Issue: The website takes the file parameter from the user input, resulting in the attacker being able to access any file.
HTTP Parameter Pollution
The request below allows a user to update their profile. If an attacker tried to change the username parameter, they'd get a 401 error.
In a new request, one can try to add another username parameter to the request right after the first one, allowing the last username parameter to cancel out the first one and forward the request with the new one.
Issue: The site is not able to handle two parameters of the same kind and therefore allows the last one to go through.
References
Last updated