19 Nisan 2015

Web Uygulama Denetimi - Bölüm-18: Uygulama Mantık Hatalarının Belirlenmesi

Uygulama mantığı başlı başına bir açıklık alanı olmakla birlikte SQL enjeksiyon, XSS saldırıları gibi karakteristik özellikleri bulunmamaktadır. Bu nedenle bu açıklıkların tespitinin de otomatik araçlarla teşhis edilmesi mümkün değildir.

Belli bir karakteristiği olmadığı için bu tür açıklıklara ancak örnekler verilebilir. Bu açıklıkların tespiti için uygulama fonksiyonalitesinin çok iyi anlaşılması, uygulama geliştiricilerin yapmış olabilecekleri varsayımları tahmin edebilme yeteneği, web uygulamalarındaki kontrol imkanlarının iyi bilinmesi ve yaratıcılık gerekir. Aşağıda kesinlikle tam bir liste olamayacak ancak size fikir verebilecek bazı mantık hatası test yöntemlerini bulabilirsiniz:

Uygulamanın istek ile gelen parametrelere dayanarak karar vermesini kötüye kullanma:
  • Cookie’leri, URL’de yer alan sorgu parametrelerini ve POST verisini de içeren istek parametreleri sırayla parametre adı ve değeri ile birlikte istekten silinir.
  • Eğer test edilen işlem birden fazla adımdan oluşuyorsa tüm adımlardan geçilir, çünkü silinen parametre ile gelen değer sonraki adımlarda kullanılıyor olabilir.
Çok aşamalı işlemlerde önceki adımlardan geçilme varsayımıyla yapılmayan kontrolleri kötüye kullanma. Bu denetim yöntemi aynı zamanda zorla tarama (forced browsing) olarak adlandırılır ve tarayıcının öngördüğü istek sırasının dışına çıkılır:
  • Sıralı adımların dışına çıkılarak istekler gönderilir. Ara adımlar gerçekleştirilmeden sonraki adımlara istek gönderilir, aynı adıma birden fazla defa istek gönderilir, sonraki adımlardan önceki adımlara istek gönderilir. Adımlar birbirinden farklı URL’lere GET veya POST istekleri göndermek suretiyle, aynı URL’ye fonksiyon adı, indeks gibi bilgiler içeren farklı parametreler kullanılarak gerçekleştiriliyor olabilir. Farklı adımlara nasıl geçildiğini uygulama haritalama sırasında anlamak gereklidir.
  • Birden fazla adımdan oluşan işlemleri adım atlayarak gerçekleştirdiğimizde ayrıca uygulamalar hata üretebilir. Bu hatalarda verilen bilgilerden yola çıkarak diğer saldırı türlerine de girdi sağlayarak daha etkili saldırılar gerçekleştirilebilir.
Daha önceki adımlarda belli koşullar oluştuğunda sağlanan şartların o koşullar ortadan kalktığında da devam etmesine yönelik saldırılar. Örneğin belli bir miktarın üzerinde alışveriş yapınca belli bir indirim oranına hak kazanılması ve ürünler sepetten çıkarıldığı halde bu imkanın devam etmesi gibi.

<<Önceki Bölüm                                                                                                      Sonraki Bölüm>>