آموزش کار با ابزار wfuzz قسمت دوم

در قسمت اول با برخی از دستورات پرکاربرد ابزار wfuzz آشنا شدیم و تا حدودی نحوه کار با این ابزار را فراگرفتیم . در این قسمت در ادامه مباحث میخواهیم با فیلترهای بیشتر این ابزار قدرتمند آشنا شویم.

 

بررسی Basic wordlist filters

آرگومان‌های فرعی خاصی وجود دارند که می‌توان قبل از آنها فیلترz- یا w- قرار داد تا امکانات بیشتری به ما دهند. این فیلترها عبارتند از:

zP- : آرگومان هایی برای payload  مشخص شده

zD- : پارامتر پیش فرض برای payload مشخص شده

zE- : مشخص کردن یک encoder برای payload مشخص شده

بنابراین، برای مشخص کردن فهرست کلمات با بارگذاری، می‌توانیم این کار را به این صورت انجام دهیم:

wfuzz -z file --zD wordlist/general/common.txt --sc 200,301 http://testphp.vulnweb.com/FUZZ

 

برای مخفی کردن کد پاسخ HTTP 404، می توان همان کد را به صورت زیر بدست آورد:

wfuzz -z file --zD wordlist/general/common.txt --hc 404 http://testphp.vulnweb.com/FUZZ

 

بررسی Double fuzzing :

درست مانند یک پارامتر در یک payload با استفاده از کلمه کلیدی “FUZZ” فاز کردن چندگانه نیز با تعیین کلمات کلیدی امکان پذیر است:

FUZ2Z – ۲nd parameter

FUZ3Z – ۳rd parameter

FUZ4Z – ۴th parameter

و هر پارامتر را می توان به لیست کلمات اختصاص داد. اولین “w-” مخفف اولین FUZZ است. “w-” دوم برای FUZ2Z دوم و غیره صادق است.

wfuzz -w wordlist/general/common.txt -w wordlist/general/common.txt --hc 404 http://testphp.vulnweb.com/FUZZ/FUZ2Z

 

بررسی Login bruteforce :

پاسخ های HTTP را می توان با استفاده از wfuzz به صورت brute-forced کرد. به عنوان مثال، وب سایت testphp یک درخواست POST به backend ارسال می کند و “uname” و “pass” را به عنوان آرگومان به صفحه userinfo.php ارسال می کند.

همین کار را می توان با استفاده از wfuzz به صورت زیر پیاده سازی کرد :

آرگومان d- داده های Post  را که باید همراه با درخواست ارسال شوند را مشخص می کند

wfuzz -z file,wordlist/others/common_pass.txt -d "uname=FUZZ&pass=FUZZ" --hc 302 http://testphp.vulnweb.com/userinfo.php

 

همانطور که می بینید، اطلاعات صحیح “test-test” پیدا شده است. ما از یک فایل مشترک برای نام کاربری و رمز عبور استفاده کردیم. همین کار را می توان با ارائه فایل های مختلف برای نام های کاربری و رمزهای عبور مانند موارد زیر انجام داد:

wfuzz -z file,users.txt -z file,pass.txt --sc 200 -d "uname=FUZZ&pass=FUZ2Z" http://testphp.vulnweb.com/userinfo.php

 

بررسی Cookie fuzzing :

برای ارسال یک کوکی سفارشی در طول یک درخواست به دایرکتوری های فاز مختلف، می توانیم از پلاگین “b-” استفاده کنیم. این یک کوکی به درخواست HTTP ارسال شده اضافه می کند.

سناریو به شکل زیر می باشد :‌

بررسی Cookie poisoning

بررسی Session hijacking

بررسی Privilege Escalation

wfuzz -z file,wordlist/general/common.txt -b cookie=secureadmin -b cookie2=value2 --hc 404 http://testphp.vulnweb.com/FUZZ

 

در سناریوی فوق، ما ۲ کوکی استاتیک را در چندین دایرکتوری اضافه کرده ایم. اکنون، ما همچنین می‌توانیم پارامتر کوکی را نیز مانند این حالت فازی کنیم:

wfuzz -z file,wordlist/general/common.txt -b cookie=FUZZ http://testphp.vulnweb.com/

 

بررسی Header fuzzing :

هدر HTTP را می توان در درخواستی که توسط wfuzz ارسال می شود اضافه کرد. هدرهای HTTP می توانند رفتار کل یک صفحه وب را تغییر دهند. هدرهای سفارشی را می توان در یک درخواست خروجی فاز  تزریق کرد

سناریو به شکل زیر می باشد :‌

بررسی HTTP Header Injections

بررسی SQL Injections

بررسی Host Header Injections

wfuzz -z file,wordlist/general/common.txt -H "X-Forwarded-By: 127.0.0.1" -H "User-Agent: Firefox" http://testphp.vulnweb.com/FUZZ

 

گزینه های HTTP fuzzing

روش‌های مختلفی برای درخواست/گزینه‌های HTTP وجود دارد که می‌توان آنها را با استفاده از سویئیچ «X-» مشخص کرد. در مثال زیر گزینه های زیر را در یک فایل متنی به نام options.txt قرار داده ایم

اکثر درخواست های HTTP شامل موارد زیر را می توان تست کرد :‌

GET

HEAD

POST

PUT

DELETE

CONNECT

OPTIONS

TRACE

PATCH

wfuzz -c -w options.txt --sc 200 -X FUZZ “http://testphp.vulnweb.com”

 

همانطور که می بینید، سه گزینه معتبر یک کد پاسخ ۲۰۰ را برگرداندند.

همین می تواند با استفاده از payload “فهرست” به صورت درون خطی وارد شود مانند:

wfuzz -z list,GET-HEAD-POST-TRACE-OPTIONS -X FUZZ http://testphp.vulnweb.com/

 

Fuzzing از طریق Proxy

Wfuzz همچنین می تواند درخواست ها را از طریق یک پروکسی هدایت کند. در مثال زیر، یک پروکسی Burp در پورت ۸۰۸۰ فعال است و همانطور که می بینید، درخواست در رهگیری burp متوقف می شود.

wfuzz -z file,wordlist/general/common.txt -p localhost:8080 http://testphp.vulnweb.com/FUZZ

 

همین کار را می توان با پروکسی SOCKS نیز به دست آورد:

wfuzz -z file,wordlist/general/common.txt -p localhost:9500:SOCKS5 http://testphp.vulnweb.com/FUZZ

 

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *