Tarih:
Tarih:
Candostum IDOR
Kurumun ana omurgasını teşkil eden web portalının pentestini yapıyoruz. Bu maksatla uygulamanın API fonksiyonlarını daha iyi anlamak için swagger.json dosyasını Postman’da import ederek inceliyoruz.
Doğal olarak ilk hedefimiz kullanıcı profil sayfası. API üzerinden profili güncellemeyi deniyoruz. Normalde istemci tarafında olan eposta ve telefon format kontrolünün burada olmadığını keşfediyoruz. Olmayaneposta ve Olmayantelefonno gibi değerler girerek ekran görüntüsü alıyoruz.
Güncelleme esnasında user_id değerinin etkisini merak ediyoruz. Başka bir test kullanıcısına ait user_id değerini mevcut olanla değiştirerek verileri yeniden güncelliyoruz. Gerçekten de normalde yetkimiz olmayan başka bir kullanıcının profil bilgilerin güncelleyebildiğimizi görüyoruz.
Tabi hemen hedef kişinin e-postasını yeniliyoruz. Ardından şifre yenile butonuna tıklıyoruz. Şifre yenileme linki bizim girmiş olduğumuz e-postaya geliyor. Sonuç: account takeover. IDOR zafiyetini neden bu kadar çok sevdiğimi yeniden anlıyorum.
Biraz daha kurcalayınca oturum token’ının otomatik sonlanmadığını, dolayısıyla oturumun otomatik kapanmadığını anlıyorum. Daha da önemlisi, oturumu kapatıp, Burpsuite’teki eski ürün listeleme POST isteğini gönderince sonucun olumlu geldiğini gözlemliyorum. Yani Authorization Bearer düzgün yönetilmiyor. Sonrasında ise uygulamanın sürekli Runtime Error hatası vererek çöktüğünü görüyorum. Daha sonra bunun asıl kaynağının kullanıcı rolünde zaten varsayılan değer olan 0 değerini atamamızmışolduğunu anlıyorum.