IDOR (Insecure Direct Object Reference)
Reading time: 5 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
IDOR (Insecure Direct Object Reference) / Broken Object Level Authorization (BOLA) tritt auf, wenn ein web- oder API-endpoint einen vom Benutzer kontrollierbaren Identifikator offenlegt oder akzeptiert, der direkt verwendet wird, um auf ein internes Objekt zuzugreifen, ohne zu prüfen, ob der Aufrufer berechtigt ist, auf dieses Objekt zuzugreifen oder es zu ändern. Eine erfolgreiche Ausnutzung erlaubt normalerweise horizontale oder vertikale Privilegieneskalation, wie z. B. das Lesen oder Verändern von Daten anderer Benutzer und im schlimmsten Fall vollständige Kontoübernahme oder massenhafte Datenexfiltration.
1. Potenzielle IDORs identifizieren
- Suchen Sie nach Parametern, die auf ein Objekt verweisen:
- Path:
/api/user/1234
,/files/550e8400-e29b-41d4-a716-446655440000
- Query:
?id=42
,?invoice=2024-00001
- Body / JSON:
{"user_id": 321, "order_id": 987}
- Headers / Cookies:
X-Client-ID: 4711
- Bevorzugen Sie Endpoints, die Daten lesen oder aktualisieren (
GET
,PUT
,PATCH
,DELETE
). - Achten Sie darauf, wenn Identifikatoren sequenziell oder vorhersagbar sind – wenn Ihre ID
64185742
ist, existiert wahrscheinlich64185741
. - Untersuchen Sie versteckte oder alternative Flows (z. B. den Link "Paradox team members" auf Login-Seiten), die zusätzliche APIs offenlegen könnten.
- Verwenden Sie eine authentifizierte Session mit geringen Rechten und ändern Sie nur die ID, während Sie denselben token/cookie beibehalten. Das Ausbleiben eines Autorisierungsfehlers ist normalerweise ein Zeichen für IDOR.
Schnelles manuelles Manipulieren (Burp Repeater)
PUT /api/lead/cem-xhr HTTP/1.1
Host: www.example.com
Cookie: auth=eyJhbGciOiJIUzI1NiJ9...
Content-Type: application/json
{"lead_id":64185741}
Automatisierte Enumeration (Burp Intruder / curl loop)
for id in $(seq 64185742 64185700); do
curl -s -X PUT 'https://www.example.com/api/lead/cem-xhr' \
-H 'Content-Type: application/json' \
-H "Cookie: auth=$TOKEN" \
-d '{"lead_id":'"$id"'}' | jq -e '.email' && echo "Hit $id";
done
Error-response oracle für Benutzer-/Datei-Enumeration
Wenn ein Download-Endpunkt sowohl einen username als auch einen filename akzeptiert (z. B. /view.php?username=<u>&file=<f>
), führen subtile Unterschiede in Fehlermeldungen oft zu einem Oracle:
- Nicht existierender username → "User not found"
- Fehlerhafter filename, aber gültige Extension → "File does not exist" (manchmal listet es auch verfügbare Dateien auf)
- Fehlerhafte Extension → Validierungsfehler
Mit jeder authentifizierten Sitzung kannst du den username-Parameter fuzzen, während du einen harmlosen filename setzt, und auf den "user not found"-String filtern, um gültige Benutzer zu entdecken:
ffuf -u 'http://target/view.php?username=FUZZ&file=test.doc' \
-b 'PHPSESSID=<session-cookie>' \
-w /opt/SecLists/Usernames/Names/names.txt \
-fr 'User not found'
Sobald gültige Benutzernamen identifiziert sind, fordere bestimmte Dateien direkt an (z. B. /view.php?username=amanda&file=privacy.odt
). Dieses Muster führt häufig zur unbefugten Offenlegung von Dokumenten anderer Benutzer und zur Preisgabe von Zugangsdaten.
2. Praxisfallstudie – McHire Chatbot-Plattform (2025)
Während einer Bewertung des von Paradox.ai betriebenen McHire Recruiting-Portals wurde die folgende IDOR entdeckt:
- Endpoint:
PUT /api/lead/cem-xhr
- Authorization: User-Session-Cookie für jedes Restaurant-Testkonto
- Body parameter:
{"lead_id": N}
– 8-stellig, sequentieller numerischer Bezeichner
Durch Verringern von lead_id
konnte der Tester beliebige Bewerber abrufen und erhielt deren full PII (Name, E‑Mail, Telefon, Adresse, Schichtpräferenzen) sowie ein consumer JWT, das session hijacking ermöglichte. Die Enumeration des Bereichs 1 – 64,185,742
offenbarte ungefähr 64 Millionen Datensätze.
Proof-of-Concept request:
curl -X PUT 'https://www.mchire.com/api/lead/cem-xhr' \
-H 'Content-Type: application/json' \
-d '{"lead_id":64185741}'
In Kombination mit den default admin credentials (123456:123456
), die Zugang zum Testkonto gewährten, führte die Schwachstelle zu einer kritischen, unternehmensweiten Datenpanne.
3. Auswirkungen von IDOR / BOLA
- Horizontale Eskalation – lesen/aktualisieren/löschen der Daten anderer Benutzer.
- Vertikale Eskalation – ein niedrig privilegierter Benutzer erhält nur für Admins verfügbare Funktionen.
- Massen-Datenpanne, wenn Bezeichner sequenziell sind (z. B. Bewerber-IDs, Rechnungen).
- Account-Übernahme durch Stehlen von Tokens oder Zurücksetzen der Passwörter anderer Benutzer.
4. Gegenmaßnahmen & Best Practices
- Durchsetzen von objektbasierter Autorisierung bei jeder Anfrage (
user_id == session.user
). - Bevorzugen Sie indirekte, nicht erratbare Identifikatoren (UUIDv4, ULID) statt Auto-Increment-IDs.
- Führen Sie Autorisierung serverseitig durch; verlassen Sie sich niemals auf versteckte Formularfelder oder UI-Kontrollen.
- Implementieren Sie RBAC / ABAC-Prüfungen in einer zentralen Middleware.
- Fügen Sie Rate-Limiting & Logging hinzu, um ID-Enumeration zu erkennen.
- Sicherheitstest für jeden neuen Endpoint (Unit-, Integrations- und DAST-Tests).
5. Tools
- BurpSuite extensions: Authorize, Auto Repeater, Turbo Intruder.
- OWASP ZAP: Auth Matrix, Forced Browse.
- Github projects:
bwapp-idor-scanner
,Blindy
(bulk IDOR hunting).
References
- McHire Chatbot Platform: Default Credentials and IDOR Expose 64M Applicants’ PII
- OWASP Top 10 – Broken Access Control
- How to Find More IDORs – Vickie Li
- HTB Nocturnal: IDOR oracle → file theft
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.