Fuzzing (Fuzz Testing) Nedir ? // Qwx

Qwx

Kıdemli Üye
30 Nis 2012
2,728
13
Fuzzing

Fuzzing veya Fuzz Testing, hedef yazılım, sistemin veya ağların iç yapısındaki zafiyetleri tespit edebilmek adına kullanılan bir kalite kontrol testidir. Test edilen uygulamanın çökmesi için ise bir çok rastgele veri içermesi gerekmektedir. Bu işlemi gerçekleştirmek için geliştirilen programlara ise Fuzzer denilmektedir.

Fuzzers, arabellek taşması, DOS, siteler arası komut dosyası çalıştırma ve SQL Enkejsiyonu yoluyla kullanılabilecek güvenlik açıklarını bulmada yarar sağlamaktadır. Fuzz testi; casus yazılım, virüsler, solucanlar, truva atları ve keylogger gibi program çökmelerine neden olmayan güvenlik tehditleriyle başa çıkmak için daha az etkilidir.

Fuzz testi basit gibi görünmesine rağmen, maliyete faydalıdır. Yazılım yazılırken ve hata ayıklanırken göz ardı edilen ciddi hataları genellikle ortaya çıkartan Fuzz testi bir programın genel güvenliği, kalitesi hakkında tam bir bilgi veremez.

Fuzz Kategorileri

Recursive Fuzzing: Özyinelemeli Fuzzing olarak bir Türkçe'leştirme yapabiliriz. Bu teknikte bir isteğin bir bölümünü, ayarlanmış bir alfabenin tüm olası kombinasyolarını yineleyerek bir isteğin bir bölümünü belirleme işlemi olarak tanımlanabilir.

Örnek;

http://www.<orneksiteadi>.com/901935fc

Belirlenen onaltılık alfabe karşısında kaynaştırılma isteiğinin bir parçası olarak "
901935fc" seçilmektedir. Sonuç olarak 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f özyinelemeli kategorisine girmektedir. Bu formun toplam 16^8 isteğini oluşturur ve hepsini tek tek denemektedir;

http://www.<orneksiteadi>.com/00000000
http://www.<orneksiteadi>.com/00000001
http://www.<orneksiteadi>.com/aaaaaaaa


Replacive Fuzzing : Değiştirmeli, yerine değiştirmek gibi bir Türkçe'leştirme yapabiliriz. Bu tekniğin ise bir isteğin parçalı kısmının ayarlanmış bir değerle değiştirilmesi yoluyla bir araya getirme işlemi olarak tanımlanabilir. Bu değer bir Fuzz vektörü olarak bilinmektedir.

Örnek;

http://www.<orneksiteadi>.com/901935fc

Aşağıdaki Fuzz vektörlerini teker teker deneyerek XSS karşı test etmektedir;

http://www.
<orneksiteadi>.com/>"><script>alert("XSS")</script>&
http://www.<orneksiteadi>.com/'';!-- "<XSS> = & {()}

Bu kategoride, toplam istek sayısı belirtilen Fuzz vektörlerinin sayısına bağlıdır.

Buffer Overflows and Format String Errors
Buffer Overflows (BFO)


Arabellek Taşması veya Bellek Bozulması Saldırısı, geçerli verilerin bellekteki önceden belirlenmiş depolama sınırını aşmasına izin veren bir programlama koşuludur.

Örnek;

A x 129
A x 257
A x 513
A x 1024
A x 2049
A x 4097
A x 8193
A x 12288

Format String Errors (FSE)

Dize Hatalarını Biçimlendirme, rastgele kodları yürütmek veya bir programın çökmesini sağlamak adına dile özgü biçim belirteçlerini içeren bir güvenlik açığı sınıfıdır. Bu tür hatalar için uğraşmak, filtrelenmemiş kullanıcı girdisini kontrol etmeyi amaçlamaktadır.

Örnek;

%x%x%x%x%x
%s%s%s%s%s
%p%p%p%p%p
%d%d%d%d%d
%s x 513
%s%p%d%s%p%d%s%p%d%s%p%d%s%p%d

Integer Overflows (INT)

Tamsayı Taşmaları, bir program bir aritmetik işlemin bir veri türünün max değerinden daha büyük veya min değerinden daha küçük bir miktarla sonuçlanabileceğini hesaba katmadığından meydana gelir. Mantık tarzından Bellek Taşması ile aynı mantıkta ilerlemektedir.

Örnek;

0
-1
0x100
0x7fffffff
0xffffffff

SQL Injection

SQL Enjeksiyon, bir web uygulamasında kullanılarak ekranda hata mesajlarını görmek adına kullanılır bu durumda kullanıcı girişi SQL ifadeleri için filtrelenmediğinde ortaya çıkar. Oluşan hata mesajları sayesinde bilgi toplama işlemini gerçekleştirmiş oluruz.

Örnek;

OR 1=1
Admin' OR '
'%20SELECT%20*%FROM%20INFORMATION_SCHEMA.TABLES--
SELECT name FROM syscolumns WHERE id = (SELECT id FROM sysobjects WHERE name = tablename')--

Wfuzz ile Fuzzing

Bir Fuzzer aracı olan Wfuzz ile Fuzzing örneğini inceleyebiliriz. Bir adet POST Requests örneğini gerçekleştirecek olursak;
Wfuzz adlı aracımızının dizininde iken terminale wfuzz -z file,wordlist/others/common_pass.txt -d "uname=FUZZ&pass=FUZZ" --hc 302 http://testphp.vlunweb.com/userinfo.php komutunu girdiğimiz zaman bazı form kodlu verilerin toplama işlemini gerçekleştirebilirsiniz.

wfuzzornek.jpg


Wfuzz ile ilgili kurulum işlemi ve daha ayrıntılı bilgi için ilgili konumu ziyaret edebilirsiniz;

Wfuzz Web Pentest Aracı Kurulumu ve Kullanımı // Qwx

 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.