در این آموزش، ما یاد میگیریم که چگونه از ffuf استفاده کنیم . Ffuf مخفف عبارت «Fuzz Faster U Fool» می باشد که یک ابزار متنباز جالب برای fuzzing وب است. از زمان انتشار آن کار با این ابزار با استقبال بسیار خوبی مواجه شد و همچنین کسانی که در زمینه باگ بانتی مشغول به فعالیت هستند از این ابزار ارزشمند استفاده می کنند.
مقدمه ای بر ffuf
ابزارهای زیادی در زمینه فازینگ طراحی و نوشته شده اند که یکی از قدرتمندترین این ابزارها ffuf می باشد . این برنامه با زبان Go طراحی شده است . برای دانلود این ابزار می توانید از لینک زیر اقدام کنید
https://github.com/ffuf/ffuf
آموزش نصب ffuf
برای نصب و راه اندازی این ابزار در کالی در ابتدا golang رو نصب میکنیم و بعد با دستور
go get -u github.com/ffuf/ffuf
شروع به دانلود این ابزار میکنیم . همچنین می توانیم از مخازن اصلی خود کالی هم برای دانلود این ابزار استفاده کنیم که با دسترو زیر این کار را انجام می دهیم :
apt install ffuf
پس از نصب این ابزار، برای بدست آوردن پارامترها و گزینه های کاری آن تنها چیزی که نیاز داریم این است که از پارامتر [h-] برای گزینه help استفاده کنیم.
گزینه های ورودی
گزینه های مختلفی برای استفاده از این ابزار داریم که به بررسی هر یک می پردازیم .
۱– انجام یک حمله ساده (Simple Attack )
برای حمله پیشفرض، باید از پارامترهای [u-] برای URL هدف و [w-] برای بارگذاری فهرست کلمات ( وردلیست مورد نظر )استفاده کنیم.
همچنین برای دانلود یکی از قدرتمند ترین wordlist های دنیا می توانید مجموعه sec lists را از لینک زیر دانلود کنید :
https://github.com/danielmiessler/SecLists
همچنین ما از سایت زیر به عنوان تارگت استفاده خواهیم کرد.
http://testphp.vulnweb.com/
دستور زیر را میزنیم :
ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt
با اجرای این دستور به صورت پیشفرض درخواست های GET ارسال خواهد شد و همچنین وضعیت کدهای http ( 200, 204, 301, 302, 307, 401, 403, 405 ) چک خواهد شد.
۲- استفاده از چند wordlist برای حمله
گاهی اوقات یک فهرست کلمات برای نشان دادن نتایج مورد نظر ما کافی نیست. در آن صورت، ما چندین فهرست کلمات را در یک زمان قرار می دهیم تا نتایج بهتری بگیریم. فقط ffuf این توانایی را دارد که به تعداد مورد نیاز ما برای حمله، فهرست کلمات را اجرا کند.
در اینجا ما از دو دیکشنری dict.txt به جای W1 و همچنین dns_dict.txt به جای W2 استفاده کردیم .
ffuf -u https://ignitetechnologies.in/W2/W1/ -w dict.txt:W1 -w dns_dict.txt:W2
۳- بررسی Ignore Wordlist Comment and Silent
به طور کلی، فهرست کلمات پیشفرض ممکن است دارای نظراتی باشد که میتواند بر دقت نتیجه ما تأثیر بگذارد. در این مورد، میتوانیم از پارامتر [-ic] استفاده کنیم و این نظرات را نادیده بگیریم.
از دستور زیر برای اجرا این حمله استفاده خواهیم کرد.
ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt
ffuf -u http://testphp.vulnweb.com/FUZZ/ -w dict.txt -ic -s
با اجرای دستور اول برخی از نظرات در نتیجه لیست شدهاند وپس از استفاده از پارامترهای [s-] و [ic-] در دستور دوم، نظرات و بنر حذف میشوند.
۴– برررسی Extensions
ما میتوانیم با کمک پارامتر [e-] یک فایل پسوند خاص را در یک وب سرور جستجو کنیم، فقط کافی است فایل پسوند را به همراه پارامتر [e-] مشخص کنیم. دستور زیر را اجرا میکنیم و دنبال پسوند php می گردیم .
ffuf -u http://192.168.1.12/dvwa/FUZZ/ -w dict.txt -e .php
۵- بررسی Request | Request-Proto | Mode
ما میتوانیم از ابزار Burp Suite در کنار ffuf استفاده کنیم . پارامترهای مختلفی از این ابزار وجود دارد که به استفاده از این سناریوی ما کمک می کند. مانند پارامتر [request-] که می تواند از درخواست ما در حمله استفاده کند، پارامتر [request-proto-] که از طریق آن می توانیم پارامتر خود را تعریف کنیم، پارامتر [mode-] به ما کمک می کند تا حالت حمله را تعریف کنیم.
اول از همه، ما از اعتبار تصادفی در صفحه URL مورد نظر خود استفاده می کنیم و پروکسی را تنظیم می کنیم تا درخواست خود را در حالت رهگیری در Burpsuite ثبت کند.
اکنون در قسمت intercept ابزار burp مقدار uname را برار HFUZZ و همچنین pass را WFUZZ تغییر می دهیم. سپس این درخواست را در یک فایل متنی به اسم brute.txt ذخیره می کنیم.
اکنون به سمت حمله اصلی بروید، جایی که پارامتر [request-] فایل متنی درخواست ما را نگه می دارد. [request-proto-] به ما کمک می کند تا نمونه اولیه http را استخراج کنیم [mode-] به ما کمک می کند تا حمله Cluster Bomb را انجام دهیم. لیست کلماتی که در اینها استفاده می کنیم (users.txt و pass.txt) از تزریق SQL تشکیل شده است. این دستور را دنبال کنید و با استفاده از این پارامترها شروع به حمله کنید.
ffuf -request brute.txt -request-proto http -mode clusterbomb -w users.txt:HFUZZ -w pass.txt:WFUZZ -mc 200
همانطور که در نتایج حمله خود می بینیم، ما با موفقیت متوجه شده ایم که تزریق SQL روی آن هدف خاص کار می کند.
پایان قسمت اول.