⚖️ Yasal Uyarı ve Sorumluluk Reddi ⚖️
Bu yazı yalnızca eğitim amaçlıdır ve siber güvenlik farkındalığını artırmak için hazırlanmıştır. Burada anlatılan yöntemlerin kötü niyetle kullanılması yasa dışıdır ve ciddi hukuki sonuçlar doğurabilir. Herhangi bir sistemi test etmeden önce mutlaka yetkili kişilerden yazılı izin almalısınız. Bu bilgilerin kullanımı tamamen sizin sorumluluğunuzdadır. Unutmayın, etik hacking kurallara uygun ve izinli yapılmalıdır!
IDOR Nedir?
Insecure Direct Object References (IDOR), bir web uygulamasının kullanıcıların yalnızca kendi verilerine erişmesini sağlaması gerekirken, yetersiz yetkilendirme kontrolleri nedeniyle başka kullanıcıların verilerine erişilmesine izin veren bir güvenlik açığıdır. Bu açık, genellikle URL parametrelerinde, API isteklerinde veya arka planda gönderilen veri paketlerinde bulunan nesne kimliklerinin (örneğin, kullanıcı ID’si, dosya ID’si) manipüle edilmesiyle ortaya çıkar.
Örneğin, bir sitede kullanıcı profilinize şu URL ile erişiyorsanız:https://ornek.com/profil?user_id=123
ve sadece user_id
parametresini değiştirerek (örneğin, user_id=124
yaparak) başka bir kullanıcının profiline erişebiliyorsanız, bu bir IDOR açığıdır.
IDOR, OWASP Top 10 listesinde “Broken Access Control” (Kırık Erişim Kontrolü) kategorisi altında yer alır ve web uygulamalarında en sık karşılaşılan güvenlik açıklarından biridir. Yeni başlayanlar için anlaşılır, uzmanlar için ise derinlemesine incelenebilecek bir konudur.

IDOR ile Sömürülmüş Büyük Siteler ve Gerçek Dünya Örnekleri
IDOR açıkları, büyük şirketlerde bile ciddi veri sızıntılarına neden olmuştur. İşte bazı çarpıcı örnekler:
- Facebook (2018)
- Ne Oldu? Facebook’ta bir IDOR açığı, kullanıcıların “View As” (Başka Birinin Gözünden Gör) özelliğini kötüye kullanarak başka kullanıcıların hesaplarına erişmesine olanak tanıdı. Saldırganlar, bir kullanıcının erişim token’ını elde ederek 50 milyondan fazla hesaba erişti.
- Sonuç: Facebook, bu olay nedeniyle büyük bir itibar kaybı yaşadı ve milyonlarca dolar ceza ödedi.
- Ders: Kullanıcı verilerine erişimde yalnızca istemci tarafı kontrollere güvenmek yetersizdir; sunucu tarafında sıkı yetkilendirme kontrolleri şarttır.
- Snapchat (2014)
- Ne Oldu? Snapchat’in API’sinde bir IDOR açığı bulundu. Saldırganlar, kullanıcı telefon numaralarını ve diğer kişisel bilgileri, yalnızca kullanıcı ID’lerini değiştirerek elde edebildi.
- Sonuç: 4.6 milyon kullanıcının verileri sızdırıldı.
- Ders: API uç noktalarında yetkilendirme kontrolleri eksik olduğunda, IDOR ciddi bir tehdit haline gelir.
- Parler (2021)
- Ne Oldu? Sosyal medya platformu Parler’da bir IDOR açığı, kullanıcıların paylaşımlarına ve meta verilerine, yalnızca paylaşım ID’lerini sıralı bir şekilde değiştirerek erişilmesine olanak tanıdı. Bu, platformdaki milyonlarca paylaşımın toplu olarak indirilmesine yol açtı.
- Sonuç: Büyük bir veri sızıntısı yaşandı ve platformun güvenilirliği sorgulandı.
- Ders: Sıralı ID’ler (sequential IDs) kullanmak, IDOR saldırılarını kolaylaştırır.
Bu örnekler, IDOR’un ne kadar ciddi sonuçlara yol açabileceğini gösteriyor. Şimdi, bu açığı nasıl tespit edeceğimizi ve test edeceğimizi öğrenelim.

IDOR Nasıl Test Edilir? Adım Adım Rehber
IDOR açıklarını tespit etmek için sistematik bir yaklaşım gerekir. Aşağıda, hem yeni başlayanların hem de uzmanların kullanabileceği bir test rehberi sunuyorum. Bu adımları takip ederken etik hacking kurallarına uymayı ve yalnızca izinli sistemlerde test yapmayı unutmayın.
Adım 1: Hedef Sistemi Tanıyın
- Ne Yapmalı? Web uygulamasını inceleyerek kullanıcı verilerine erişim sağlayan URL’leri, formları veya API uç noktalarını belirleyin. Örneğin:
- Profil sayfaları (
/profile?user_id=123
) - Dosya indirme linkleri (
/download?file_id=456
) - API istekleri (
GET /api/users/789
)
- Profil sayfaları (
- Araçlar: Tarayıcınızın geliştirici araçları (F12), Postman, Burp Suite veya OWASP ZAP gibi proxy araçları.
Adım 2: Parametreleri Tespit Edin
- Ne Yapmalı? URL’lerde veya isteklerde kullanılan parametreleri (örneğin,
user_id
,account_id
,document_id
) bulun. Bunlar genellikle:- Sayısal ID’ler (1, 2, 3…)
- UUID’ler (örneğin,
550e8400-e29b-41d4-a716-446655440000
) - E-posta adresleri veya kullanıcı adları gibi benzersiz tanımlayıcılar
- İpucu: F12 tuşuna basarak tarayıcınızın “Network” sekmesinden gönderilen ve alınan istekleri inceleyin.
Adım 3: Parametreleri Manipüle Edin
- Ne Yapmalı? Tespit ettiğiniz parametrelerin değerlerini değiştirerek başka bir nesneye (örneğin, başka bir kullanıcının profiline) erişmeye çalışın. Örneğin:
https://ornek.com/profil?user_id=123
→user_id=124
GET /api/users/789
→GET /api/users/790
- Dikkat: Sunucudan gelen yanıtı dikkatlice inceleyin. Eğer başka bir kullanıcının verilerini görüyorsanız, bu bir IDOR açığıdır.
Adım 4: API ve Arka Plan İsteklerini Test Edin
- Ne Yapmalı? Web uygulamasının yalnızca görünür URL’lerle sınırlı olmadığını unutmayın. Çoğu modern uygulama, arka planda API istekleri kullanır. Burp Suite gibi bir proxy aracıyla bu istekleri yakalayın ve manipüle edin.
- Örnek: Bir sitede profil bilgilerinizi güncellerken şu istek gönderiliyor:
POST /api/update_profile Content-Type: application/json {"user_id": 123, "name": "Ahmet"}
user_id
değerini değiştirerek başka bir kullanıcının profilini güncellemeyi deneyin:{"user_id": 124, "name": "Hacker"}
- İpucu: API uç noktalarını test ederken, yetkilendirme token’larınızın (örneğin, JWT) hala geçerli olduğundan emin olun.
Adım 5: Yetkilendirme Kontrollerini Doğrulayın
- Ne Yapmalı? Farklı kullanıcı rolleriyle (örneğin, normal kullanıcı ve yönetici) aynı istekleri tekrarlayın. Bazı IDOR açıkları, yalnızca belirli rollerle ortaya çıkar. Örneğin, bir yönetici hesabı başka bir kullanıcının verilerine erişebilir, ancak bu erişim kısıtlanmamışsa bir açıktır.
- Araçlar: Birden fazla test hesabı oluşturun ve her biriyle aynı işlemleri tekrarlayın.
Adım 6: Raporlama ve Düzeltme Önerileri
- Ne Yapmalı? Bir IDOR açığı bulduysanız, bunu sorumlu bir şekilde bildirin. Çoğu şirket, güvenlik açıklarını bildirmek için bir Bug Bounty programı sunar.
- Düzeltme Önerileri:
- Sunucu Tarafı Yetkilendirme: Her istekte, kullanıcının ilgili nesneye erişim yetkisi olup olmadığını kontrol edin.
- Rastgele ID’ler Kullanın: Sıralı ID’ler yerine UUID gibi tahmin edilmesi zor tanımlayıcılar kullanın.
- Erişim Kontrol Listeleri (ACL): Her nesne için kimlerin erişebileceğini tanımlayan bir ACL oluşturun.
- Gizli Verileri Maskeleyin: Hassas verileri yalnızca yetkili kullanıcılara gösterin.
IDOR Testi için Örnek Senaryo
Diyelim ki bir e-ticaret sitesinde kullanıcı siparişlerini görüntülüyor:https://ornek.com/orders?order_id=1001
Bu URL, sipariş detaylarını gösteriyor. Şimdi şu adımları izleyelim:
- URL’yi Test Et:
order_id=1002
yaparak başka bir siparişi görüntülemeyi deneyin. - API’yi İnceleyin: Tarayıcınızın Network sekmesinden veya Burp Suite ile istekleri yakalayın. Örneğin:
GET /api/orders/1001 Authorization: Bearer <your_token>
1001
yerine1002
yazarak başka bir siparişi çekmeyi deneyin. - Farklı Kullanıcıyla Test Et: Başka bir hesapla aynı işlemi tekrarlayın. Eğer hala başka bir kullanıcının siparişini görebiliyorsanız, bu bir IDOR açığıdır.
Uzmanlar için Ek İpuçları
- Otomasyon: IDOR testlerini otomatikleştirmek için Python veya Bashスクリプトleriyle sıralı ID’leri test edebilirsiniz. Örneğin:
import requests base_url = "https://ornek.com/api/orders/" for order_id in range(1000, 1100): response = requests.get(f"{base_url}{order_id}") if response.status_code == 200: print(f"Order ID {order_id} erişilebilir!")
- Gelişmiş Araçlar: Burp Suite’in Intruder modülüyle parametreleri toplu olarak test edebilirsiniz.
- Karmaşık IDOR’lar: Bazı IDOR açıkları, yalnızca belirli bir sırayla yapılan isteklerde ortaya çıkar. Örneğin, önce bir nesneyi oluşturup sonra başka bir nesneye erişmeyi deneyin.
Sonuç
IDOR, hem yeni başlayanlar hem de deneyimli siber güvenlik uzmanları için anlaşılması ve test edilmesi kolay, ancak bir o kadar da tehlikeli bir güvenlik açığıdır. Bu açık, web uygulamalarının yetkilendirme mekanizmalarını doğru yapılandırmamanın ne kadar ciddi sonuçlara yol açabileceğini gösteriyor. Etik hacking prensiplerine bağlı kalarak bu açığı test edebilir ve sistemlerinizi daha güvenli hale getirebilirsiniz.
Eğer bir IDOR açığı bulursanız, lütfen bunu sorumlu bir şekilde bildirin ve asla kötü niyetle kullanmayın. Siber güvenlik topluluğuna katkıda bulunarak daha güvenli bir internet inşa edebiliriz!
