Lab: User ID controlled by request parameter, with unpredictable user IDs
Lab: User ID controlled by request parameter, with unpredictable user IDs
Bu labda, kullanıcı hesap sayfasında yatay yetki yükseltme zafiyeti bulunuyor ancak kullanıcılar GUID değerleriyle tanımlanıyor. Amaç, carlos kullanıcısının GUID değerini bulup onun API key’ini elde etmek. Kendi hesabımıza giriş yapmak için verilen bilgiler: wiener:peter
Giriş yaptıktan sonra hesap sayfasının URL yapısının GUID içerdiğini gördüm:

GUID kullanılması genellikle tahmin etmeyi zorlaştırmak amacıyla yapılır, ancak erişim kontrolü sunucu tarafında doğru uygulanmamışsa bunun bir güvenlik katkısı yoktur. Burada da uygulama, parametredeki GUID’in giriş yapan kullanıcıya ait olup olmadığını kontrol etmiyor.
Lab’ın amacı carlos’un API key’ine ulaşmak olduğu için önce carlos’a ait GUID değerini tespit ettim. Uygulamada carlosun yazılarında adına tıkladığımızda GUID değeri açıkca görünüyor.


Carlos’a ait GUID’i aldıktan sonra istek parametresini şu şekilde güncelledim:

GET /my-account?id=a80a3f91–49ca-48ff-88da-fde7f95a1821
Bu istek sunucu tarafından kabul edildi ve carlos’un hesap sayfası görüntülendi. Bu noktada yatay erişim kontrolü zafiyeti tamamen doğrulanmış oldu. (Bu yapıyı görünce merakıma yenik düşüp admin hesabına ait GUID’yi de aldım😂)

carlosa ait ID adresini attım ve labı bitirdim.

Bu lab, tahmin edilmesi zor GUID değerlerinin tek başına güvenlik sağlamadığını gösteriyor. Eğer uygulama, kullanıcıya ait bir kaynağa erişimde sunucu tarafında doğru doğrulama yapmıyorsa, bir parametre manipülasyonu ile başka bir kullanıcının hesap sayfasına geçmek mümkün oluyor.
Aynı mantık önceki IDOR labıyla birebir aynı şekilde çalıştı; tek fark, kullanıcı adları yerine GUID kullanılmasıydı. Ancak erişim kontrolü doğru uygulanmadığı sürece bu fark pratikte hiçbir şeyi değiştirmiyor.







