WFUZZ İLE Fuzzing işlemi
Fuzzing
Fuzzing, temel olarak
otomatik bir şekilde hatalı bir şekilde biçimlendirilmiş veri enjeksiyonu
kullanarak uygulama hatalarını bulmayı içeren bir Black Box test tekniğidir. Fuzzing, test yapılan uygulamanın arka
planında ki algoritma yapısını bilmediğinden dolayı gönderilen verilen
uygulamada oluşturduğu etki ve sonuçları analizine dayandığından, uygulama test
tekniklerinden black-box kategorisine girmektedir. Fuzzing’e bazen Fuzz
Test te denilmektedir. Biri sistemde beklenmedik bir değer girildiğinde
sistem çökebilir veya klasik güvenlik sorunlarına yol açabilir (buffer
overflows, DoS, XSS … ).
Fuzzing sistemde beklenmedik, yarı geçerli, sıralı verilerin gönderimi gibi
yöntemlerle sistemin iç yapısındaki hataları bulmayı hedefleyen bir test etme
yöntemidir. Fuzzing çalışma yöntemi sistemin beklediği geçerli bir cevabın
bütünlüğü bozmadan beklenmedik veriler ile değiştirilmesi sonucu sistemin
çökmesini sağlamaktır. Fuzz testi bir programın genel, güvenliği, kalitesi
hakkında tam bir bilgi sağlayamaz.
Fuzzing testi web uygulamaların zafiyet tespitinde, yazılım geliştirme ve test süreçlerinde,
tersine mühendislik işlemlerinde kullanılmaktadır.
Bu yazımızda web uygulamaları ile ilgili
değineceğiz. Web uygulamasının zafiyetlerini tespit etmek için fuzzer araçları 2 farklı yöntem kullanmaktadır;
Recurisice Fuzzing (Özyinelemeli): Bu teknik ile ayarlanmış alfabenin tüm olası
kombinasyonlarını yineleyerek bir isteğin bir bölümünü belirleme işlemi olarak
tanımlanabilir. Yenilenerek gönderilen
her verinin dönen sonucu incelenir.
Replacive Fuzzing (Değiştirmek): Bu teknikte ise
ayarlanan değer değiştirilerek gönderilmesi ile zafiyet tespit edebilme işlemi
olarak tanımlanabilir. Parametreye verilen değerler sürekli olarak
değiştirilerek dönen sonuçlar incelenir.
Fuzzing sağlayan
programlara fuzzer denilmektedir. Fuzzer programları rastgele verileri otomatik
bir şekilde enjekte eden ve hataları tespit eden bir programdır.
Örnek Fuzzer
programları;
·
WebSlayer
·
Wfuzz
·
FM-FSF
·
WebScrab
·
Spike
Proxy
·
Codemonicon
Defensics
·
Burp
Suite
·
AppScan
·
Wapiti
·
ASP
Auditor
Fuzzing Avantajları
·
Fuzz
testi, yazılım güvenlik testini iyileştirir.
·
Fuzz
testinde tespit edilene hatlar ciddi zararlar verebilir bu test esnasında bu
zafiyetler tespit edilebilir.
Fuzzingin Eksik Kaldığı Durumlar
·
Tek
başına genel bir güvenlik zafiyet haritasını çıkaramaz.
·
Etkili
performans gösterebilmesi için zaman gerekmektedir.
WFUZZ
WFUZZ, hedef web
uygulamasında zafiyet, dizin taramaya yardımcı olan bir araçtır. WFUZZ, web
uygulaması güvenlik açıklarını bularak ve istismar ederek web uygulamalarını
güvence altına almamıza yardımcı olur. Kali
Linux işletim sisteminde otomatik gelmektedir.
WFUZZ özellikleri;
·
HTML
çıktısı almayı sağlar
·
Renkli
çıktı almayı sağlar.
·
Proxy
desteği sağlar.
·
SOCK
desteği sağlar.
Kullanımı
wfuzz --h
parametresi ile wfuzz
hakkında bilgi ve kullanılan parametreleri görüyoruz.
sudo wfuzz -c -z file,/usr/share/wordlists/dirb/big.txt --hw 57 --hc 404 http://10.10.171.205/FUZZ
Komutuna bakacak
olursak;
-w parameteresi ile
wordlistimizi gösterdik, -c parametresi ile renkli bir çıktı vermesini istedik,
--hc 404 ile 404 kodların gösterilmesinin engellemesini istedik, --hl 57
uzunluğunu belirledik.
En çok kullanılan
parametreleri;
-c |
çıktıyı renklendirir. |
-z |
Wordlist dosya konumu belirtmemizi sağlar |
--hc |
gizlenecek statü kodunu belirler
|
--hw |
Gizlenecek olan content-length’i belirtiriz. |
--hh |
Belirli sayıda karakter göstermemizi sağlar. |
--hl
|
Gizlenecek olan satır sayısını belirtmemizi sağlar. |
Kaynaklar:
https://owasp.org/www-community/Fuzzing
https://www.360logica.com/blog/some-fuzzing-tools-for-web-application-projects/
https://medium.com/swlh/fuzzing-web-applications-e786ca4c4bb6
https://github.com/xmendez/wfuzz
https://wfuzz.readthedocs.io/en/latest/