Netsparker Hawk, SSRF ve Out-of-Band Zafiyetlerini Nasıl Tespit Eder?

Sven Morgenroth - 06 Mart 2017 -

Bu yazıda Netsparker web uygulaması güvenlik tarayıcısının, Netsparker Hawk zafiyet test alt yapısını kullanarak, SSRF, blind, asenkron ve second order web uygulama zafiyetlerini nasıl tespit ettiğini anlattık.

Netsparker Hawk, SSRF ve Out-of-Band Zafiyetlerini Nasıl Tespit Eder?

Netsparker Hawk, Netsparker tarafından geliştirilen DNS out-of-band zafiyet tespiti altyapısıdır. Netsparker web uygulaması güvenlik tarayıcısı tarafından yapılan SSRF ataklarının sonucunda, atak başarılı olduğunda out-of-band olarak bilinen bir adrese DNS istekleri yapılır. Netsparker Hawk, bu istekleri izleyerek Netsparker uygulamasına sunar. Böylelikle, Netsparker, (Blind XSS, OOB SQLi, ... ) SSRF zafiyetlerinin tespitini out-of-band olarak Netsparker Hawk yardımı ile yapmış olur.

Neden Netsparker Hawk?

Yaygın olan SQL Injection türleri, Cross Site Scripting ve benzer zafiyetler oldukça kolay tespit edilebilmektedir. Tarayıcı, hedef web uygulamasına istek gönderir ve yanıt aldığında hedefin zafiyet barındırıp barındırmadığını belirlemek için gelen yanıtı analiz eder.

Örneğin tipik bir SQL Injection açığı, yanıttaki bir hata mesajı veya içerik değişikliklerine ya da sayfanın yüklenmesi için geçen zamana bakılarak tespit edilebilir. Ancak tüm zafiyetler bu kadar basit tespit edilemez.

Örneğin, web uygulamasına gönderilen istek başka bir asenkron kod bloğu tarafından kuyruğa alınır ve işlenirse, girdiyi işleyen kod SQL Injection'a açık olsa bile gösterilen yanıtta herhangi bir hata mesajı, içerik farklılıkları veya yükleme zamanındaki farklılıklar olmayacaktır.

Böyle zafiyetleri tespit etmek için tarayıcı, kodu farklı bir iletişim kanalı vasıtasıyla geri bildirimde bulunmaya zorlar. Dolayısıyla bu durum, adına neden out-of-band dendiğini açıklamaktadır. Netsparker Hawk, bu sinyalleri alacak farklı iletişim kanalı ve bu tür zafiyetleri doğrulamak için iletişim kuracak ara sunucudur.

Netsparker Hawk Hangi Zafiyetleri Tespit Edebilir?

Yukarıdaki yöntem sadece SQL Injection için değil out-of-band tespitinden faydalanan veya sadece bu yöntemle tespit edilebilen çeşitli zafiyetler için de geçerlidir. Netsparker Hawk altyapısı, Netsparker web uygulaması güvenlik tarayıcısının aşağıdaki güvenlik açıklarını bulmasını sağlar:

  • Out-of-Band SQL Injection
  • Out-of-Band Remote File Inclusion
  • Out-of-Band Code Injection
  • Out-of-Band Code Evaluation
  • XML External Entity (XXE) Injection
  • Server-side Request Forgery (SSRF)
  • Blind Cross-site Scripting

Netsparker Hawk Nasıl Çalışır?

Netsparker Hawk, SSRF ve Out-of-Band Zafiyetlerini Nasıl Tespit Eder-1

  1. Web güvenlik taraması sırasında Netsparker web güvenlik tarayıcısı bir hash üretir ve onu saldırı payload’ı içerisinde kullanır. Örneğin aşağıdaki isteği hedef web uygulamasına gönderir:
    https://example.com/fetch?id=13&url=rc0shnxclpkdrp9oy-nibgsbz7u5ibyjddtzp0rezw4.r87.me/r/
  2. Hedef uygulama zafiyet barındırıyorsa, DNS sunucumuzla iletişim kurarak URL’i çözümlemeye çalışır.
  3. DNS sunucusu isteği aldıktan sonra onu hash’ler ve isteğin türü ile birlikte veri tabanına gönderir. Örneğin:
    d057a29eb9d43456054ff79b421c36a1d0678768bb7b01adae2f8b025add6df8, DNS
    Netsparker Hawk, SSRF ve Out-of-Band Zafiyetlerini Nasıl Tespit Eder-2
  4. Taramadan sonra Netsparker tarayıcısı, hash’lenmiş kayıtlar için veri tabanı sunucusunu kontrol eden Netsparker Hawk sunucusunu sorgular.
  5. Tarayıcı hash’lenmiş veriyi aldığında, DNS sunucusunda kullanılan local veriye aynı hash’leme algoritmasını uygular.

Tarayıcının hash’i ile DNS sunucusunun hash’i eşleşirse bunun anlamı, hedef web uygulaması zafiyet barındırmakta ve Netsparker web uygulaması güvenlik tarayıcısı bu zafiyeti doğrulamaktadır.

Hassas Veri ve Güvenlik

Sunucularımız, yukarıdaki yaklaşımı kullanarak zafiyetlerle veya hedef web uygulamasıyla ilgili herhangi bir hassas bilgiyi kaydetmezken aynı zamanda Netsparker web uygulaması güvenlik tarayıcısı, zafiyeti tam olarak doğrulayabilmektedir.