Insecure Direct Object Reference(IDOR) Nedir?

İçindekiler

  • Giriş
  • IDOR Nasıl Çalışır?
  • Yaygın IDOR Türleri
  • IDOR Güvenlik Açıklarını Tespit Etme
  • IDOR Güvenlik Açıklarını Bulma Yöntemleri
  • IDOR’un Etkileri
  • IDOR Güvenlik Açıklarını Önleme
  • Medium Kaynakları
  • HackerOne Raporları

Giriş

Güvensiz doğrudan nesne referansları (IDOR), bir uygulamanın nesnelere doğrudan erişmek için kullanıcının sağladığı girdiyi kullanmasıyla ortaya çıkan bir erişim kontrol güvenlik açığıdır. IDOR terimi, ilk olarak 2007 OWASP En İyi On listesinde yer almasıyla popülerleşmiştir. Ancak, bu sadece erişim kontrolü atlatmalarına yol açan birçok erişim kontrolü uygulama hatasından biridir. IDOR güvenlik açıkları genellikle yatay ayrıcalık yükseltme ile ilişkilendirilse de dikey ayrıcalık yükseltme ile de ortaya çıkabilir.

IDOR Nasıl Çalışır? (TryHackMe)

Örneğin, bankacılık hesabımıza giriş yaptığımızı düşünelim. Kimlik doğrulama işlemini doğru bir şekilde yaptıktan sonra, URL şu şekilde olur: https://bank.thm/account?id=111111 . Bu sayfada, önemli bankacılık bilgilerimizi görebiliriz ve kullanıcı hiçbir sorun olmadığını düşünerek işlemlerine devam eder.

Ancak, burada potansiyel olarak büyük bir sorun bulunmaktadır. Birisi id parametresini 2222222 gibi başka bir değere değiştirebilir ve site yanlış yapılandırılmışsa, başkasının bankacılık bilgilerine erişebilir.

Uygulama, id parametresi aracılığıyla doğrudan bir nesne referansı sunar ve bu parametre belirli hesaplara işaret eder. Uygulama, giriş yapan kullanıcının ilgili hesaba sahip olup olmadığını kontrol etmediği için, bir saldırgan IDOR güvenlik açığı nedeniyle diğer kullanıcıların hassas bilgilerini alabilir.

Yaygın IDOR Türleri

Günümüzde kimlik belirteçleri, kullanıcıların adres çubuğunda doğrudan bulunmak yerine daha çok başlıklarda veya API’lerde görülmektedir. Ancak, çoğu web sitesinin dinamik doğası gereği kimlik belirteçleri ve parametreler hâlâ yoğun bir şekilde kullanılmaktadır. Bunlar şunları içerebilir:

  1. GET Tabanlı IDOR (URL Manipülasyonu):
  • Sayısal IDOR: Uygulamanın URL’de sayısal kimlik belirteçleri kullanarak kaynaklara erişmesi durumunda saldırganlar, bu numaraları değiştirerek yetkisiz verilere erişebilir. Örneğin, URL’deki id değeri 123ten 124e değiştirilirse başka bir kullanıcının verilerine erişim sağlanabilir.
  • Kullanıcı Adına Dayalı IDOR: Saldırganlar GET isteklerinde kullanıcı adlarını veya diğer belirteçleri değiştirerek başka kullanıcılara ait verilere erişebilir. Örneğin, example.com/profile?username=johndoe URL’ini example.com/profile?username=admin şeklinde değiştirerek bir admin profilini görüntüleyebilir.
  • Kaynak Yolu Manipülasyonu: Saldırganlar, GET isteklerinde dosya yollarını veya kaynak belirteçlerini değiştirerek yetkisiz dosyalara veya verilere erişebilir. Örneğin, example.com/download?file=report.pdf yolunu example.com/download?file=confidential.pdf olarak değiştirerek hassas verilere ulaşabilir.
  1. POST Tabanlı IDOR (Form ve Parametre Manipülasyonu): Bu senaryoda saldırganlar, POST isteklerinde form alanlarını veya parametreleri değiştirerek verilere erişebilir veya yetkisiz işlemler yapabilir. Bu, bir form gönderiminde gizli alanları, örneğin kullanıcı kimliklerini veya ayrıcalıkları değiştirerek yetki yükseltme yapmayı içerebilir.
  2. Çerez Tabanlı IDOR: Saldırganlar, diğer kullanıcıları taklit etmek veya yetkisiz erişim elde etmek için çerezleri veya oturum verilerini manipüle edebilir. Bu, çerezlerdeki oturum belirteçlerini, kullanıcı kimliklerini veya rollerini değiştirerek yapılabilir.
  3. API Tabanlı IDOR: API’lerde IDOR güvenlik açıkları, saldırganların API uç noktalarını, parametreleri veya başlıkları manipüle ederek veri erişimi veya yetkisiz işlemler yapmaları durumunda ortaya çıkabilir.
  4. Veritabanı Tabanlı IDOR: Veritabanı tabanlı uygulamalarda saldırganlar, SQL sorgularını veya veritabanı parametrelerini değiştirerek yetkisi olmayan kayıtlara erişebilir, bu kayıtları değiştirebilir veya silebilir.
  5. Oturum Tabanlı IDOR: Saldırganlar, oturum değişkenlerini veya belirteçlerini manipüle ederek yetkisiz erişim veya ayrıcalık elde edebilir.

IDOR Güvenlik Açıklarını Tespit Etme

IDOR güvenlik açıkları genellikle sömürülmesi kolay fakat geliştiricilerin tespit etmesi zor olabilir. Kod analizi ve otomatik taramalar IDOR hatalarını diğer yaygın güvenlik sorunları kadar iyi tespit edemediğinden, bu güvenlik açıklarını belirlemek manuel güvenlik testi gerektirebilir.

Bazı tespit yöntemleri:

  • Web tarayıcıdaki geliştirici araçlarını kullanarak temel testler yapmak
  • Burp Suite veya OWASP ZAP gibi araçlar kullanarak manuel testlerin etkinliğini artırmak
  • Bir güvenlik açığı bildirim programına katılmak
  • Kritik web uygulamalarını incelemek için bir dış güvenlik testi firmasını işe almak

Örnek: URL yoluyla parola ifşası

IDOR Güvenlik Açıklarını Bulma Yöntemleri

Kodlanmış Kimliklerde IDOR Bulma: Geliştiriciler verileri sayfa sayfa geçirirken sıklıkla kodlama yapar. Web sunucusunun içeriği anlaması için veriler genellikle Base64 gibi yöntemlerle kodlanır. Kodlanmış verileri çözmek için https://www.base64decode.org/ adresini kullanabilirsiniz; ardından verileri düzenleyip tekrar kodlayarak yanıtı inceleyebilirsiniz.

Hashlenmiş Kimliklerde IDOR Bulma: Hashlenmiş kimlikler, genellikle tahmin edilebilir bir model izler. Örneğin, 123 sayısı md5 ile hashlenirse 202cb962ac59075b964b07152d234b70 olur.

Tahmin Edilemeyen Kimliklerde IDOR Bulma: Tespit edilmesi zor olan kimliklerde IDOR bulmanın iyi bir yöntemi, iki hesap oluşturup ID numaralarını değiştirmektir. Başka bir hesabın kimlik numarasını kullanarak içeriklerini görüntüleyebiliyorsanız, geçerli bir IDOR açığı bulmuşsunuz demektir.

IDOR’un Verilere Etkisi IDOR güvenlik açıkları basitçe istismar edilebilir, ancak etkileri çok ciddi olabilir:

  • Gizlilik: Başarılı bir IDOR saldırısı, saldırgana erişmemesi gereken verilere erişim sağlar.
  • Bütünlük: Saldırganlar, HTTP POST isteğindeki parametreleri değiştirerek veriyi manipüle edebilir.
  • Erişilebilirlik: IDOR, bir kaynağa erişimi engellemek için de kullanılabilir.

IDOR Güvenlik Açıklarını Önlemek İçin Dört İpucu

  1. Doğru Erişim Kontrolü ve Oturum Yönetimi Uygulayın
  2. Doğrudan Nesne Referanslarından Kaçının
  3. GUID veya Rastgele Kimlikler Kullanın
  4. Kullanıcı Girdisini Doğrulayın

Medium Kaynakları

HackerOne Raporları

Kaynak: TryHackMe, Varonis, @savanghori1203, Medium, HackerOne


Subscribe to my newsletter

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir