TR | Netsparker ile Web Uygulama Sızma Testleri
Herkese Selamlar,
Bu post Netsparker ile yapılan bir web uygulama testini simüle edip false positive oranları, optimizasyon ve diğer uygulama tarayıcalarından farkları hakkında teknik bilgiler içerecek.
Uygulamanın demo sürümüne burdan ulaşabilirsiniz
Netsparker
Ilk Tarama
Bunun sebebi Netsparker'ın unauthentication ile tarama yapmasının yanı sıra authentication yaparak uygulama içerisinde ki sayfalarda da zaafiyet araştırması yapmasını istememiz.
Uygulamayı indirip kurduktan sonra resimdeki gibi bir arayüz ile karşılaşıyoruz
Öncelikle options butonuna tıklayarak seçenekleri görüntülüyoruz.
Tarama poliçesi bölümünden Netsparker'ın sağlıklı sonuçlar verebilmesi için hedef sistem hakkında bilgiler girmemiz gerekiyor.
Bu bilgiler kısaca uygulamanın barındığı sunucunun işletim sistemi uygulamanın dili kullandığı web servis vs.
Bu noktada girilen bilgiler oldukça önemli. Netsparker'ın sistem üzerinde doğru payloadları yakalaması için optimize edilmiş bir tarama poliçesine ihtiyacımız var böylelikle uygulamadan daha sağlıklı sonuçlar alabileceğiz.
Hedef sistem hakkında istenilen bilgileri "Shodan", "Nmap" ve "Sayfa Kaynağından" elde edebilirsiniz.
Ardından bir diğer önemli nokta olan eğer uygulama üzerinde bir erişimimiz var ise "Form" sekmesinden giriş path'ini ve credentials girmemiz.
Tüm bunlardan sonra taramayı başlatıyorum. Start Scan seçeneğinden sonra Netsparker bir pencere açıp uygulama üzerinde authentication yapıp uygulama içerisinde ki sayfalarda da testlerini yapmaya başladı
3 aşamadan oluşan tarama sırasında Netsparker arka planda crawling yaparak uygulama içerisinde ki dizin ve scriptleri buluyor. Bunun yanı sıra kendi wordlisti ile backup dizinleride keşfediyor.
Resimde sol üst köşede tarama hızı ve yollanan request sayısı hakkında bilgi sahibi olabiliriz orta bölümde sayfaları ve yollanan payloadları , onun hemen altında iste seviyelerine göre zaafiyetleri görebiliriz.
Netsparkeri diğer uygulama güvenliği tarayıcılarından ayıran nokta false positive uyarı vermemek için zaafiyetin türüne göre dışarıya bilgi çıkarması.
Rastgele bir zaafiyeti açarak request ve responsları inceliyorum.
Açılan pencerede Netsparker bize adresi, saldırıdan etkilenen parametreyi, PoC adresini ve payload'ı veriyor.
Netsparkerın payloadını incelediğimiz zaman
'"--></style></scRipt><scRipt>netsparker(0x000438)</scRipt>
Şeklinde bir payload kullandığını görüyoruz. Burada sadece script taglarını açarak da alert verdirebilirdi fakat yukarıdaki şekilde bir payload'ı kullanmasının sebebi eğer varsa contextlerden kaçmasıdır .
Bu çoğu zaman için iyi bir payloadtır.
Bir başka zaafiyeti incelediğimiz zaman
Boolen based tabanlı sql injection bulduğunu görüyoruz. HTTP Request ve Response sekmesinden Netsparker'ın açıklık için yolladığı isteği ve dönen cevabı görebiliyoruz.
Aynı zamanda zaafiyetin response adresini Browser view sekmesinden tarayıcı tabanlı gösterebiliyoruz.
Rakiplerini geride bırakmasında en önemli rolü false positive sonuçları çok büyük ölçüde engellemiş olması.