[TR] - IDOR

April 11, 2020

Herhangi bir web uygulamasında, kendinize ait bir profilde olduğunuzu düşünün. Bunu biraz daha somut bir hale dönüştürelim. Bulunduğunuz site ismi xyz, id de 1024 olsun. Bu durumda sitenin size vereceği URL:

https://xyz.com/profil?userID=1024

şeklinde olsun (burda belirtmeliyim ki, çoğu sitede bundan daha karışık bir biçimde olur. Yani, id'nin URL'de bulunma ihtimali düşük). 1024 sayesinde sunucu, bizim profilimizi gönderdi. Peki, 1024'ü değiştirirsek ne olur? Eğer, site bu zaafiyete sahipse, yani, yeteri kadar filtreleme işlemi yapmadan isteğimizi işliyorsa, başka profillere erişebiliriz.

Şunu söylemekte fayda var; burada profil kısmının private olduğunu düşünelim. Yani, herkes sadece kendine ait profil kısmını görüyor. Çünkü, bildiğiniz gibi Twitter gibi sosyal medyalarda da user id değiştirilerek, diğer kullanıcıların profiline ulaşabiliyoruz. Bu, o sosyal medya sitelerinin IDOR zaafiyeti barındırdığı anlamına gelmiyor.

Örneğimize dönersek, farklı profillere erişebildiğimizi biliyoruz. Sadece bununla yetinemeyiz değil mi? Devamı olmalı. Mesela, kendi profilimizi silmek isteyelim. Silme ekranında şöyle bir URL beliriyor:

https://xyz.com/deleteAccount?userID=1024

Burada, userID değiştirilerek farklı kullanıcıların hesaplarını silebiliriz. Ama, kullanıcıyı silmenin bize pek bir faydası olmaz. Hadi şifresini değiştirelim:

https://xyz.com/changePassword?userID=1024

UserID'yi değiştirerek, istediğimiz kişinin şifresini değiştirebiliriz.

Bu ID kısmının, her zaman URL'de bulunmayacağını söyledim. Diğer bulunduğu yerlere örnek vermek gerekirse; gönderdiğimiz HTTP isteklerini incelersek, "uid", "id", "pid" gibi ifadeler görebiliriz. Bu parametreleri kurcalayarak, zaafiyet testi yapılabilir.

Son olarak buraya bir örnek bırakıyorum. İsteyen kişiler okuyabilir.

Fatih Furkan Hatipoğlu

 

Bana bu kadar bilgi yetmez, daha fazlasını istiyorum diyenler için birkaç tavsiye kaynak:

Bugcrowd - How-To: Find IDOR

Geeksforgeeks - IDOR Vulnerability

Gracefulsecurity - IDOR

Codeburst - IDOR

Detectify - IDOR