4.8 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	IDOR (Insecure Direct Object Reference)
{{#include ../banners/hacktricks-training.md}}
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 64185742ist, dann existiert wahrscheinlich64185741.
- Erkunden Sie versteckte oder alternative Flüsse (z. B. "Paradox-Teammitglieder" 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 vollständige 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 legte ungefähr 64 Millionen Datensätze offen.
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, unratbare 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).
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}}