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