Web Tool - WFuzz
Qarışıq Yollar və Fayllar
Wfuzz veb server daxilində fayl və kataloqlar kimi gizli məzmunu axtarmaq üçün istifadə oluna bilər ki, bu da əlavə hücum vektorlarını tapmağa imkan verir. Qeyd etmək lazımdır ki, bu tapşırığın uğuru istifadə olunan wordlist-dən çox asılıdır.
Bununla belə, məhdud sayda platformalar, standart quraşdırmalar, log faylları, administrativ qovluqlar kimi tanınmış resurslar səbəbindən xeyli sayda resurs proqnozlaşdırıla bilən yerlərdə yerləşir. Buna görə də, bu məzmunları brute force daha mümkün bir işə çevrilir.
Wfuzz bəzi lüğətləri əhatə edir, digər daha böyük və ən müasir açıq mənbə söz siyahıları bunlardır:
Aşağıda ümumi qovluqları axtaran wfuzz nümunəsi göstərilir:
$ wfuzz -w wordlist/general/common.txt http://testphp.vulnweb.com/FUZZ
Aşağıda ümumi faylları axtaran wfuzz nümunəsi göstərilir:
$ wfuzz -w wordlist/general/common.txt http://testphp.vulnweb.com/FUZZ.php
URL-lərdə qeyri-səlis parametrlər
Siz tez-tez URL sorğu sətirində bir növ məlumatı gizlətmək istəyirsiniz, buna sual işarəsindən sonra URL-də FUZZ açar sözünü göstərməklə nail olmaq olar:
$ wfuzz -z range,0-10 --hl 97 http://testphp.vulnweb.com/listproducts.php?cat=FUZZ
Qeyri-səlis POST sorğuları
HTML forması kimi bəzi forma kodlu məlumatları gizlətmək istəyirsinizsə, sadəcə olaraq -d əmr satırı arqumentini ötürün:
$ wfuzz -z file,wordlist/others/common_pass.txt -d "uname=FUZZ&pass=FUZZ" --hc 302 http://testphp.vulnweb.com/userinfo.php
********************************************************
* Wfuzz 2.2 - The Web Fuzzer *
********************************************************
Target: http://testphp.vulnweb.com/userinfo.php
Total requests: 52
==================================================================
ID Response Lines Word Chars Request
==================================================================
00044: C=200 114 L 356 W 5111 Ch "test"
Total time: 2.140146
Processed Requests: 52
Filtered Requests: 51
Requests/sec.: 24.29739
Qarışıq kukilər
Öz kukilərinizi serverə göndərmək üçün, məsələn, sorğunu HTTP seansları ilə əlaqələndirmək üçün siz -b parametrindən istifadə edə bilərsiniz (müxtəlif kukilər üçün təkrarlayın):
$ wfuzz -z file,wordlist/general/common.txt -b cookie=value1 -b cookie2=value2 http://testphp.vulnweb.com/FUZZ
Yuxarıdakı əmr aşağıdakı kimi HTTP sorğuları yaradacaq:
GET /attach HTTP/1.1
Host: testphp.vulnweb.com
Accept: */*
Content-Type: application/x-www-form-urlencoded
Cookie: cookie=value1; cookie2=value2
User-Agent: Wfuzz/2.2
Connection: close
Kukilər də tündləşdirilə bilər:
$ wfuzz -z file,wordlist/general/common.txt -b cookie=FUZZ http://testphp.vulnweb.com/
Fərdi başlıqlar
Əgər sorğuya HTTP başlıqları əlavə etmək istəyirsinizsə, sadəcə olaraq -H parametrindən istifadə edin (müxtəlif başlıqlar üçün təkrarlayın):
$ wfuzz -z file,wordlist/general/common.txt -H "myheader: headervalue" -H "myheader2: headervalue2" http://testphp.vulnweb.com/FUZZ
Yuxarıdakı əmr aşağıdakı kimi HTTP sorğuları yaradacaq:
GET /agent HTTP/1.1
Host: testphp.vulnweb.com
Accept: */*
Myheader2: headervalue2
Myheader: headervalue
Content-Type: application/x-www-form-urlencoded
User-Agent: Wfuzz/2.2
Connection: close
Mövcud başlıqları dəyişdirə bilərsiniz, məsələn, fərdi istifadəçi agentini təyin etmək üçün aşağıdakıları yerinə yetirin:
$ wfuzz -z file,wordlist/general/common.txt -H "myheader: headervalue" -H "User-Agent: Googlebot-News" http://testphp.vulnweb.com/FUZZ
Yuxarıdakı əmr aşağıdakı kimi HTTP sorğuları yaradacaq:
GET /asp HTTP/1.1
Host: testphp.vulnweb.com
Accept: */*
Myheader: headervalue
Content-Type: application/x-www-form-urlencoded
User-Agent: Googlebot-News
Connection: close
Başlıqlar qarışıq ola bilər:
$ wfuzz -z file,wordlist/general/common.txt -H "User-Agent: FUZZ" http://testphp.vulnweb.com/
Qarışıq HTTP felləri
HTTP felləri -X keçidindən istifadə etməklə müəyyən edilə bilər:
$ wfuzz -z list,GET-HEAD-POST-TRACE-OPTIONS -X FUZZ http://testphp.vulnweb.com/
********************************************************
* Wfuzz 2.2 - The Web Fuzzer *
********************************************************
Target: http://testphp.vulnweb.com/
Total requests: 5
==================================================================
ID Response Lines Word Chars Request
==================================================================
00002: C=200 0 L 0 W 0 Ch "HEAD"
00004: C=405 7 L 12 W 172 Ch "TRACE"
00005: C=405 7 L 12 W 172 Ch "OPTIONS"
00001: C=200 104 L 296 W 4096 Ch "GET"
00003: C=200 104 L 296 W 4096 Ch "POST"
Total time: 1.030354
Processed Requests: 5
Filtered Requests: 0
Requests/sec.: 4.852696
Müəyyən bir feldən istifadə edərək sorğuları yerinə yetirmək istəyirsinizsə, "-X HEAD" də istifadə edə bilərsiniz.
Proksilər
Proksi istifadə etmək lazımdırsa, sadəcə olaraq -p parametrindən istifadə edin:
$ wfuzz -z file,wordlist/general/common.txt -p localhost:8080 http://testphp.vulnweb.com/FUZZ
Əsas HTTP proksilərinə əlavə olaraq, Wfuzz həmçinin SOCKS4 və SOCKS5 protokolundan istifadə edən proksiləri dəstəkləyir:
$ wfuzz -z file,wordlist/general/common.txt -p localhost:2222:SOCKS5 http://testphp.vulnweb.com/FUZZ
Müxtəlif -p parametrlərini təmin etməklə birdən çox proksi eyni vaxtda istifadə edilə bilər:
$ wfuzz -z file,wordlist/general/common.txt -p localhost:8080 -p localhost:9090 http://testphp.vulnweb.com/FUZZ
Hər sorğu hər dəfə fərqli bir proxy istifadə edərək yerinə yetiriləcək.
İdentifikasiyası
Wfuzz –basic/ntlm/digest komanda xətti açarlarından istifadə edərək identifikasiya başlıqlarını təyin edə bilər.
Məsələn, Əsas autentifikasiyadan istifadə edən qorunan resurs aşağıdakı əmrdən istifadə edərək tündləşdirilə bilər:
$ wfuzz -z list,nonvalid-httpwatch --basic FUZZ:FUZZ https://www.httpwatch.com/httpgallery/authentication/authenticatedimage/default.aspx
********************************************************
* Wfuzz 2.2 - The Web Fuzzer *
********************************************************
Target: https://www.httpwatch.com/httpgallery/authentication/authenticatedimage/default.aspx
Total requests: 2
==================================================================
ID Response Lines Word Chars Request
==================================================================
00001: C=401 0 L 11 W 58 Ch "nonvalid"
00002: C=200 20 L 91 W 5294 Ch "httpwatch"
Total time: 0.820029
Processed Requests: 2
Filtered Requests: 0
Requests/sec.: 2.438938
Qorunan veb-saytdan resursu gizlətmək istəyirsinizsə, “–basic user: pass” istifadə edə bilərsiniz.
Rekursiya
-R açarı faydalı yükün rekursiyasının dərinliyini təyin etmək üçün istifadə edilə bilər. Məsələn, əgər siz mövcud qovluqları axtarmaq və sonra eyni faydalı yükdən istifadə edərək yenidən bu qovluqların içərisində qeyri-müəyyənlik etmək istəyirsinizsə, aşağıdakı əmrdən istifadə edə bilərsiniz:
$ wfuzz -z list,"admin-CVS-cgi\-bin" -R1 http://testphp.vulnweb.com/FUZZ
********************************************************
* Wfuzz 2.2 - The Web Fuzzer *
********************************************************
Target: http://testphp.vulnweb.com/FUZZ
Total requests: 3
==================================================================
ID Response Lines Word Chars Request
==================================================================
00003: C=403 10 L 29 W 263 Ch "cgi-bin"
00002: C=301 7 L 12 W 184 Ch "CVS"
|_ Enqueued response for recursion (level=1)
00001: C=301 7 L 12 W 184 Ch "admin"
|_ Enqueued response for recursion (level=1)
00008: C=404 7 L 12 W 168 Ch "admin - CVS"
00007: C=404 7 L 12 W 168 Ch "admin - admin"
00005: C=404 7 L 12 W 168 Ch "CVS - CVS"
00006: C=404 7 L 12 W 168 Ch "CVS - cgi-bin"
00009: C=404 7 L 12 W 168 Ch "admin - cgi-bin"
00004: C=404 7 L 12 W 168 Ch "CVS - admin"
Performans
Bir neçə seçim proqrama performans təsirindən, öz emal gücünüzdən və bant genişliyinizdən asılı olaraq HTTP sorğu mühərrikini dəqiq tənzimləməyə imkan verir.
-t keçidindən istifadə edərək hücumunuzun daha sürətli və ya daha yavaş davam etməsi üçün eyni vaxtda sorğuların sayını artıra və ya azalda bilərsiniz.
Siz Wfuzz-a -s parametrindən istifadə edərək başqa sorğunu yerinə yetirməzdən əvvəl verilmiş bir neçə saniyəni dayandırmağı söyləyə bilərsiniz.
Fayla yazmaq
Wfuzz nəticələrin fərqli formatda fayla yazılmasını dəstəkləyir. Bu, "printerlər" adlanan plaginlər tərəfindən həyata keçirilir. Mövcud printerləri icra edən siyahıya almaq olar:
$ wfuzz -e printers
Məsələn, nəticələri JSON formatında bir çıxış faylına yazmaq üçün aşağıdakı əmrdən istifadə edin:
$ wfuzz -f /tmp/outfile,json -w wordlist/general/common.txt http://testphp.vulnweb.com/FUZZ
Fərqli çıxış
Wfuzz nəticələri müxtəlif formatlarda göstərməyi dəstəkləyir. Bu, "printerlər" adlanan plaginlər tərəfindən həyata keçirilir. Mövcud printerləri icra edən siyahıya almaq olar:
$ wfuzz -e printers
Məsələn, nəticələri JSON formatında göstərmək üçün aşağıdakı əmrdən istifadə edin:
$ wfuzz -o json -w wordlist/general/common.txt http://testphp.vulnweb.com/FUZZ
Defolt və ya xam çıxışdan istifadə edərkən, faydalı yük təsviri ilə birlikdə –efield istifadə edərək göstərmək üçün əlavə FuzzResult sahələrini də seçə bilərsiniz:
$ wfuzz -z range --zD 0-1 -u http://testphp.vulnweb.com/artists.php?artist=FUZZ --efield r
...
000000001: 200 99 L 272 W 3868 Ch 0 | GET /artists.php?artist=0 HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: Wfuzz/2.4
Host: testphp.vulnweb.com
...
Yuxarıdakı əmr, məsələn, Wfuzz-un uzaq Web serverə göndərdiyi dəqiq HTTP sorğusunu aradan qaldırmaq üçün faydalıdır.
Defolt yük çıxışını tamamilə əvəz etmək üçün əvəzinə –field istifadə edə bilərsiniz:
$ wfuzz -z range --zD 0-1 -u http://testphp.vulnweb.com/artists.php?artist=FUZZ --field url
...
000000001: 200 104 L 364 W 4735 Ch "http://testphp.vulnweb.com/artists.php?artist=0"
...
–efield və –field bir neçə sahəni göstərmək üçün təkrarlana bilər:
$ wfuzz -z range --zD 0-1 -u http://testphp.vulnweb.com/artists.php?artist=FUZZ --efield url --efield h
...
000000001: 200 104 L 364 W 4735 Ch "0 | http://testphp.vulnweb.com/artists.php?artist=0 | 4735"
...
Sahə printeri başlıq və ya altbilgi olmadan yalnız müəyyən edilmiş filtr ifadələrini siyahıya almaq üçün –efield və ya –field ifadəsi ilə istifadə edilə bilər:
$ wfuzz -z list --zD https://www.airbnb.com/ --script=links --script-args=links.regex=.*js$,links.enqueue=False -u FUZZ -o field --field plugins.links.link | head -n3
https://a0.muscache.com/airbnb/static/packages/4e8d-d5c346ee.js
https://a0.muscache.com/airbnb/static/packages/7afc-ac814a17.js
https://a0.muscache.com/airbnb/static/packages/7642-dcf4f8dc.js
Yuxarıdakı əmr, məsələn, wfuzz-u digər alətlərə köçürmək və ya konsol skriptlərini yerinə yetirmək üçün faydalıdır.
–efield və –field əslində filtr ifadələridir. Mövcud sahələr və operatorlar üçün əvvəlcədən istifadə sənədində filtr dili bölməsini yoxlayın.
Last updated
Was this helpful?