در این آموزش، ما یاد میگیریم که چگونه از ffuf استفاده کنیم . Ffuf مخفف عبارت «Fuzz Faster U Fool» می باشد که یک ابزار متنباز جالب برای fuzzing وب است. از زمان انتشار آن کار با این ابزار با استقبال بسیار خوبی مواجه شد و همچنین کسانی که در زمینه باگ بانتی مشغول به فعالیت هستند از این ابزار ارزشمند استفاده می کنند.
در قسمت ۱ ما با برخی از دستورات این ابزار کار کردیم و به بررسی موارد زیر پرداختیم :
۱- انجام یک حمله ساده (Simple Attack )
۲- استفاده از چند wordlist برای حمله
۳- بررسی Ignore Wordlist Comment and Silent
۴- برررسی Extensions
۵- بررسی Request | Request-Proto | Mode
در ادامه با کاربردهای دیگر این ابزار آشنا میشویم.
۶– Match Options
ما می توانیم کار کنیم که ffuf فقط داده هایی را نشان دهد که در داده های فازی وب ما مهم هستند نظیر HTTP code, Lines, Words, Size and Regular Expressions را به ما نشان دهد.
۶-۱ – بررسی. Match HTTP Code:
برای درک این پارامتر، باید یک حمله ساده را در نظر بگیریم که در آن میتوانیم ببینیم کدام کدهای HTTP در نتایج ما ظاهر میشوند.
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt
ما به وضوح می بینیم که ۳۰۲ کد HTTP به همراه ۲۰۰ کد HTTP را نشان می دهد.
اگر بخواهیم مثلا فقط HTTP 200 به ما نشان داده شود از پارامتر [mc-] همراه با کد HTTP خاص خود استفاده کنیم. برای استفاده از این پارامتر کافیست دستور را دنبال کنید.
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -mc 200
۶-۲ـ بررسی Match Lines
با کمک پارامتر [ml-] می توانیم نتیجه را برای خطوط خاصی در یک فایل استفاده کنیم
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -ml 15
۶-۳ ـ بررسی Match Words
ما میتوانیم نتیجه را با تعداد کلمات خاص مطابقت دهیم. از پارامتر [mw-] در کنار تعداد کلمات خاصی که در نتایج میخواهیم استفاده کنیم
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -mw 53
۶-۴ – بررسی Match Size
ما می توانیم نتیجه ای را با اندازه فایل بدست بیاریم. از پارامتر [ms-] به همراه تعداد اندازه خاصی که میخواهیم در نتیجه استفاده کنیم.
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -ms 2929
۶-۵ – بررسی Match Regular Expression
همچنین می توانیم برای regex هم از این ابزار استفاده کنیم . د ر اینجا یک فایل به اسم dict2.txt که حاوی اطلاعات مهمی می باشد. ما میتوانیم با استفاده از تطیبق رشته با الگوی “root:x” در فایل dict2.txt به دنبال آسیب پذیری LFI بگردیم .
از URL استفاده میکنیم که میتواند به این قابلیت دست یابد و با استفاده از پارامتر [mr-] رشته مطابق «root:x» را تعریف میکنیم.
فایل dict2.txt حاوی اطلاعات زیر می باشد :
با استفاده از این فهرست کلمات، دستور زیر را برای استفاده از پارامتر [mr-] در سناریوی حمله دنبال کنید.
ffuf -u http://testphp.vulnweb.com/showimage.php?file=FUZZ -w dict2.txt -mr "root:x"
در اینجا ما HTTP را برای پاسخ ۲۰۰ برای /etc/passwd برای لیست کلمات داده شده دریافت کردیم.
۷– بررسی Filter Options
گزینه های فیلتر کاملاً مخالف گزینه های Match هستند. ما میتوانیم از این گزینهها برای حذف موارد ناخواسته از fuzzing وب خود استفاده کنیم. مثال: کد HTTP، خطوط، کلمات، اندازه، عبارات منظم.
۷-۱ _ Filter Code
پارامتر [fc-] به کد وضعیت HTTP خاصی نیاز دارد که میخواهیم از نتیجه حذف کنیم.
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fc 302
۷-۲ _ Filter Lines
پارامتر [fl-] این توانایی را دارد که طول خاصی را از نتیجه ما حذف کند یا می توانیم آن را از حمله خود فیلتر کنیم.
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fl 26
۷-۳ _ Filter Size
پارامتر [fs-] توانایی فیلتر کردن اندازه مشخص شده توسط ما را در هنگام دستور حمله دارد.
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fs 2929
۷-۴ _ Filter Words
پارامتر [fw-] این قابلیت را دارد که تعداد کلمات را از نتایجی که میخواهیم حذف کنیم، فیلتر کند.
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fw 83
۷-۵ _ Filter Regular Expression فیلتر کردن عبارت منظم
پارامتر [fr-] ما می توانیم یک عبارت منظم خاص را حذف کنیم، در اینجا ما سعی می کنیم فایل log را از نتیجه خروجی حذف کنیم.
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -fr "log