Sipariş uç noktasında yetkisiz nesne erişimi (IDOR)
Bozuk erişim denetimi — OWASP A01:2021
- CVSS v3.1 taban puanı
- 7.1/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N- Etkilenen uç nokta
GET / PATCH /api/v1/orders/{orderId}- Kapsam dokümanında tanımlı üretim öncesi ortam.
Özet
Uç nokta, oturumdaki kullanıcının kimliğini doğruluyor ancak istenen sipariş kaydının o kullanıcıya ait olup olmadığını kontrol etmiyor. Standart yetkiye sahip bir müşteri hesabıyla, sıralı sipariş numaraları denenerek başka müşterilerin sipariş detayları okunabiliyor ve teslimat notu alanı değiştirilebiliyor.
Yeniden üretim adımları
- 01Standart yetkili bir müşteri hesabıyla oturum açılır ve kendi siparişi görüntülenir.
- 02İstek yakalanarak yoldaki sipariş kimliği bir alt değere (orderId - 1) çevrilir.
- 03Yanıtta başka bir müşteriye ait ad, telefon, açık adres ve sipariş kalemleri döner; HTTP 200 alınır.
- 04Aynı kimlik üzerinde PATCH isteği gönderildiğinde teslimat notu alanı güncellenir ve değişiklik kalıcı olur.
- 05Kimlik aralığı üzerinde küçük bir örneklem alınarak davranışın tek kayda özgü olmadığı doğrulanır. Toplu veri çekilmez; kanıt için gereken en az sayıda istek yapılır.
Etki
Kimliği doğrulanmış herhangi bir müşteri, diğer müşterilerin kişisel verilerine (ad, iletişim, adres, satın alma geçmişi) erişebilir. Bu, KVKK kapsamında kişisel veri ihlali niteliğindedir ve tespit edilmesi hâlinde bildirim yükümlülüğü doğurabilir. Yazma yetkisi, teslimat bilgisinin manipülasyonuyla operasyonel dolandırıcılığa da açık kapı bırakır.
Düzeltme önerisi
- Kaydı getiren sorguya sahiplik koşulunu ekleyin: kayıt yalnızca oturum sahibinin kimliğiyle eşleşiyorsa dönsün.
- Yetki kontrolünü uç nokta bazında tekrar yazmak yerine, veri erişim katmanında merkezî bir kural olarak uygulayın.
- Sıralı ve tahmin edilebilir sipariş kimlikleri yerine dışarıya kapalı bir referans (UUID veya imzalı belirteç) kullanın.
- Sahiplik ihlali denemelerini güvenlik günlüğüne yazın ve eşik aşıldığında uyarı üretin.
Doğrulama testi (retest): Doğrulama testinde kapandı
Düzeltme sonrası aynı senaryo yeniden çalıştırıldı; yetkisiz istekler HTTP 403 döndü ve komşu kimliklerde veri sızıntısı gözlenmedi. Doğrulama testi ücretsizdir ve rapora ek olarak eklenir.