# IDOR (Onveilige Direkte Objektverwysing) {{#include ../banners/hacktricks-training.md}} IDOR (Onveilige Direkte Objektverwysing) / Gebroke Objektvlak Owerheid (BOLA) verskyn wanneer 'n web- of API-eindpunt 'n gebruiker-beheerde identifiseerder openbaar of aanvaar wat **direk** gebruik word om toegang te verkry tot 'n interne objek **sonder om te verifieer dat die oproeper gemagtig is** om daardie objek te benader/wysig. Suksesvolle uitbuiting laat normaalweg horisontale of vertikale voorregverhoging toe, soos om ander gebruikers se data te lees of te wysig en, in die ergste geval, volle rekeningoorname of massadata-uitvloeiing. --- ## 1. Identifisering van Potensiële IDORs 1. Soek na **parameters wat 'n objek verwys**: * Pad: `/api/user/1234`, `/files/550e8400-e29b-41d4-a716-446655440000` * Navraag: `?id=42`, `?invoice=2024-00001` * Liggaam / JSON: `{"user_id": 321, "order_id": 987}` * Koptekste / Koekies: `X-Client-ID: 4711` 2. Verkies eindpunte wat **data lees of opdateer** (`GET`, `PUT`, `PATCH`, `DELETE`). 3. Let op wanneer identifiseerders **sekwensieel of voorspelbaar** is – as jou ID `64185742` is, bestaan `64185741` waarskynlik. 4. Verken verborge of alternatiewe vloei (bv. *"Paradox spanlede"* skakel in aanmeldbladsye) wat ekstra API's mag blootstel. 5. Gebruik 'n **geverifieerde lae-voorreg sessie** en verander slegs die ID **terwyl jy dieselfde token/koekie hou**. Die afwesigheid van 'n owerheidsfout is gewoonlik 'n teken van IDOR. ### Vinige handmatige tampering (Burp Repeater) ``` PUT /api/lead/cem-xhr HTTP/1.1 Host: www.example.com Cookie: auth=eyJhbGciOiJIUzI1NiJ9... Content-Type: application/json {"lead_id":64185741} ``` ### Geoutomatiseerde enumerasie (Burp Intruder / curl lus) ```bash 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. Werklike Gevalstudie – McHire Chatbot Platform (2025) Tydens 'n assessering van die Paradox.ai-gedrewe **McHire** werwingsportaal is die volgende IDOR ontdek: * Eindpunt: `PUT /api/lead/cem-xhr` * Owerheid: gebruikersessie koekie vir **enige** restaurant toetsrekening * Liggaam parameter: `{"lead_id": N}` – 8-syfer, **volgorde** numeriese identifiseerder Deur `lead_id` te verlaag, het die toetsers willekeurige aansoekers se **volledige PII** (naam, e-pos, telefoon, adres, skofvoorkeure) plus 'n verbruiker **JWT** wat sessie-hijacking toegelaat het, verkry. Opname van die reeks `1 – 64,185,742` het ongeveer **64 miljoen** rekords blootgestel. Bewys-van-konsep versoek: ```bash curl -X PUT 'https://www.mchire.com/api/lead/cem-xhr' \ -H 'Content-Type: application/json' \ -d '{"lead_id":64185741}' ``` Gekombineer met **default admin credentials** (`123456:123456`) wat toegang tot die toetsrekening verleen het, het die kwesbaarheid gelei tot 'n kritieke, maatskappy-wye datalek. --- ## 3. Impak van IDOR / BOLA * Horisontale eskalasie – lees/werk by/verwyder **ander gebruikers'** data. * Vertikale eskalasie – lae-bevoegde gebruiker verkry admin-slegs funksionaliteit. * Massadatalek as identifiseerders opeenvolgend is (bv. aansoeker-ID's, fakture). * Rekening oorname deur tokens te steel of wagwoorde van ander gebruikers te reset. --- ## 4. Versagtings & Beste Praktyke 1. **Handhaaf objekvlak outorisasie** op elke versoek (`user_id == session.user`). 2. Verkies **indirekte, onraai-bare identifiseerders** (UUIDv4, ULID) in plaas van outo-toegevoegde ID's. 3. Voer outorisasie **bediener-kant** uit, moenie op versteekte vormvelde of UI-beheer staatmaak nie. 4. Implementeer **RBAC / ABAC** kontroles in 'n sentrale middleware. 5. Voeg **spoedbeperking & logging** by om opsporing van ID's te detecteer. 6. Sekuriteitstoets elke nuwe eindpunt (eenheid, integrasie, en DAST). --- ## 5. Gereedskap * **BurpSuite uitbreidings**: Authorize, Auto Repeater, Turbo Intruder. * **OWASP ZAP**: Auth Matrix, Forced Browse. * **Github projekte**: `bwapp-idor-scanner`, `Blindy` (grootmaat IDOR jag). ## Verwysings * [McHire Chatbot Platform: Default Credentials and IDOR Expose 64M Applicants’ PII](https://ian.sh/mcdonalds) * [OWASP Top 10 – Broken Access Control](https://owasp.org/Top10/A01_2021-Broken_Access_Control/) * [How to Find More IDORs – Vickie Li](https://medium.com/@vickieli/how-to-find-more-idors-ae2db67c9489) {{#include ../banners/hacktricks-training.md}}