IDOR (Insecure Direct Object Reference) & PortSwigger IDOR Lab Çözümü

  • Konbuyu başlatan Konbuyu başlatan İlker
  • Başlangıç tarihi Başlangıç tarihi

İlker

Community Leader
Admin
Katılım
21 Ocak 2024
Mesajlar
59
Tepkime puanı
32
Puanları
18
Merhaba. Bugün sizlere IDOR'u kısaca özetleyip ne işe yaradığını, web taraflı hangi zaafiyetlere yol açacağını anlatıp portswigger lab'ını çözeceğim.

Peki, nedir bu IDOR ?


1*-gHgac7QEUqYfKXUCMOCXA.png


Resimden de anlaşılacağı üzere sunucuda tutulan birtakım verilere o veri sahibi ulaşabilir. En basitiyle üniversite bilgi panelinde hesap ID'nizin 1 olduğunu düşünürseniz buna sadece sizin erişmeniz gerekir ve bu 1 ID'li hesapta sizin verileriniz tutulur. IDOR ile yetkisiz olan 3. kullanıcı request atarak sizin verilerinizi çekebilir. Bilal'e anlatır gibi bu şekilde özetleyebiliriz. Yani yetkisiz erişim elde etmektedir.
IDOR'la aşağıda yazılan bazı işleri yapabilirsiniz;

  • Hesap silme
  • Kritik hesap verilerine erişme
  • Hesap ele geçirme (account takeover)

Sayıca az, öz nitelikte yüksek işler yapabileceğiniz bir zaafiyet. En basitiyle alışveriş sitelerinde IDOR'la hesap silme, account takeover yapma durumunda yaşanabilecek zaafiyeti firmalar düşünmek dahi istemez. Bunun banka hesaplarına vs. de yapıldığını göz önüne alın.
IDOR'la alakalı birtakım PoC'ler;

"https://insecure-website.com/customer_account?customer_number=132355" böyle bir URL'de kullanıcı numarası 132355 olarak belirtilmiş, peki ben 132356 olarak request yollarsam nolabilir ? Eğer sunucu tarafında yetkisiz erişim elde edip 132356 numaralı hesabın bilgilerini elde edebiliyorsam IDOR gerçekleşmiş olacaktır. Bunu PortSwigger'ın IDOR Lab'ı üzerinden açıklayalım.


Ekran görüntüsü 2024-01-25 171743.png


Açıklamada sistemin static URL'le sunucudaki chat loglarını depoladığını belirtiyor. "carlos" hesabına da şifresini bularak giriş yapmamızı istiyor özetle. O zaman Lab'a girelim.

Ekran görüntüsü 2024-01-25 171919.png


Live chat bölümü ilgimi çekiyor, madem chat'ler loglanıyorsa o zaman burada ID, numara gibi parametreler olabileceğini düşünüyorum ve dalıyorum buraya.

Ekran görüntüsü 2024-01-25 171055.png


View transcript'e tıklarsam 2,3,4,5.....txt şeklinde dosyalar indiriliyor. Peki 2.txt varsa neden 1.txt, 0.txt olmasın diye düşünüyorum ve BurpSuit'le isteği tutuyorum. Gelen isteği Repeater'ı atıp 2.txt'yi 1.txt şeklinde değiştirip request'i yolluyorum ve bingo! 1.txt sistemde var, 200 OK döndü. Karşıma da 1.txt'nin içeriği çıkıyor.

Ekran görüntüsü 2024-01-25 170649.png


Password yazışması ilgimi çekiyor, "carlos - hzf1nqpewaeuwtct1b7q" olarak login olmayı deniyorum ve bingo! Lab'ı çözmüş olduk.

Ekran görüntüsü 2024-01-25 172409.png


Özet olarak IDOR'u yüzeysel olarak anlattım, ne işe yaradığını ve ne tarz verilerin çekilebileceğini anlattım. Bug bounty yaparken özellikle User ID parametrelerine Intruder'la atak yapabilirsiniz. 1'den 1000'e kadar denenmesi gibi.. Ve bu şekilde kullanıcılara ait kritik verileri elde edebilirsiniz.

Okuduğunuz için teşekkür ederim.
 
Geri
Üst