IDOR (Onveilige Direkte Objektverwysing)

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

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
  1. Verkies eindpunte wat data lees of opdateer (GET, PUT, PATCH, DELETE).
  2. Let op wanneer identifiseerders sekwensieel of voorspelbaar is – as jou ID 64185742 is, bestaan 64185741 waarskynlik.
  3. Verken verborge of alternatiewe vloei (bv. "Paradox spanlede" skakel in aanmeldbladsye) wat ekstra API's mag blootstel.
  4. 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

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