ffuf چیست؟
ffuf مخفف «Fuzz Faster U Fool» است؛ یک ابزار خط فرمان نوشتهشده با Go که یک درخواست HTTP را با هزاران مقدار مختلف تکرار میکند و پاسخها را بر اساس معیارهایی که شما تعیین میکنید فیلتر میکند. ایدهی مرکزی آن یک کلیدواژه است: هرجای درخواست که رشتهی FUZZ را بگذارید، ffuf آن را با خطهای وردلیست جایگزین میکند.
همین سادگی، ffuf را از یک «brute-forcer دایرکتوری» به یک ابزار عمومی فازینگ تبدیل کرده است. FUZZ میتواند در این موقعیتها بنشیند:
- مسیر (کشف دایرکتوری و فایل)
- نام پارامتر (کشف پارامترهای پنهان)
- مقدار پارامتر (شمارش شناسهها، آزمون مقادیر)
- هدر دلخواه (از جمله هدر
Hostبرای کشف vhost) - بدنهی درخواست POST
آخرین انتشار برچسبخوردهی ffuf نسخهی v2.1.0 در ۱۶ سپتامبر ۲۰۲۳ است؛ یعنی نزدیک به سه سال بدون انتشار جدید. مخزن همچنان کامیت، ایشو و PR فعال دارد و ابزار عملاً استاندارد صنعت باقی مانده، اما ادعای «بهطور مداوم بهروزرسانی میشود» درست نیست. توصیف دقیق: پایدار، پرکاربرد، اما بدون انتشار برچسبخورده از ۲۰۲۳.
جایگاه ffuf در فرایند تست نفوذ
ffuf در مرحلهی نگاشت سطح حمله مینشیند، بلافاصله بعد از شناسایی و پیش از آزمون عمقی. کاری که انجام میدهد پیدا کردن چیزهایی است که در رابط کاربری به آنها لینک داده نشده:
- پنلهای مدیریتی بدون لینک عمومی
- فایلهای پشتیبان و نسخههای قدیمی (
.bak،.old،.zip) - اندپوینتهای API نسخههای قبلی که هنوز فعالاند
- پارامترهای پنهانی که فیلتر یا دیباگ را فعال میکنند و اغلب به LFI، IDOR یا SSRF میرسند
- زیردامنههای مجازی که روی همان IP سرویس داده میشوند
در کنار Burp Suite و سایر ابزارهای تست نفوذ، ffuf کار سنگین شمارش را انجام میدهد و Burp کار دقیق تحلیل را. بهویژه در نسخهی Community که Intruder محدود شده، ffuf جایگزین درست فازینگ است.
نکتهی حرفهای: «امنیت از راه ناشناخته بودن» با ffuf در چند دقیقه از بین میرود. اگر مسیر /admin-panel-2019 تنها محافظ شماست، شما محافظتی ندارید.
فلگهایی که واقعاً لازم دارید
| فلگ | کارکرد |
|---|---|
-w | وردلیست؛ با :KEY میتوان به آن نام داد و چند وردلیست همزمان به کار برد |
-u | آدرس هدف، همراه با کلیدواژهی FUZZ |
-mc | تطبیق بر اساس کد وضعیت (Match Code) |
-fc | حذف بر اساس کد وضعیت |
-fs | حذف بر اساس اندازهی پاسخ (بایت) |
-fw | حذف بر اساس تعداد کلمات پاسخ |
-fl / -fr | حذف بر اساس تعداد خط / تطبیق عبارت منظم در پاسخ |
-ac | واسنجی خودکار (auto-calibration) برای تشخیص پاسخهای ساختگی |
-recursion | ادامهی فاز روی دایرکتوریهای کشفشده |
-H | افزودن هدر (کوکی نشست، Host، توکن) |
-X / -d | تعیین متد و بدنهی درخواست |
-mode | حالت ترکیب چند وردلیست: clusterbomb یا pitchfork |
مهمترین فلگ این فهرست -ac است. بسیاری از برنامههای مدرن برای هر مسیر ناموجود هم پاسخ 200 با صفحهی سفارشی برمیگردانند؛ در چنین حالتی فیلتر بر اساس کد وضعیت بیفایده است. auto-calibration ابتدا چند مسیر تصادفی و قطعاً ناموجود میفرستد، الگوی پاسخ «نبود» را یاد میگیرد و بقیه را بر همان اساس فیلتر میکند.
کارگاه عملی: چهار الگوی پرکاربرد
۱) کشف دایرکتوری با واسنجی خودکار:
ffuf -u https://target.example.com/FUZZ -ac \
-w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt \
-mc 200,204,301,302,307,401,403۲) کشف پارامتر پنهان — اینجا FUZZ در نام پارامتر مینشیند و پاسخهای هماندازه با پاسخ پایه حذف میشوند:
ffuf -u 'https://target.example.com/index.php?FUZZ=test' -fs 4242 \
-w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt۳) کشف زیردامنهی مجازی (vhost) — همان IP، هدر Host متفاوت:
ffuf -u https://target.example.com/ -H 'Host: FUZZ.example.com' \
-w subdomains.txt -fw 120۴) دو وردلیست همزمان با حالت clusterbomb — هر ترکیب ممکن از دو فهرست آزموده میشود؛ در حالت pitchfork فهرستها موازی و خطبهخط پیش میروند:
ffuf -u https://target.example.com/api/V/USER -mode clusterbomb \
-w versions.txt:V -w users.txt:USER -acدر همهی این نمونهها اگر برنامه پشت احراز هویت است، کوکی نشست را با -H 'Cookie: session=...' اضافه کنید؛ فاز کردن بدون نشست معتبر معمولاً فقط صفحهی ورود را میبیند.
وردلیستها: SecLists و جایگزینها
کیفیت خروجی ffuf تقریباً تماماً به کیفیت وردلیست بستگی دارد. مرجع استاندارد، SecLists است: مخزنی با مجوز MIT که دنیل میسلر (Daniel Miessler) بنیان گذاشت و افرادی مثل جیسون هدیکس (Jason Haddix) و g0tmi1k در آن مشارکت داشتهاند؛ نگهدارندهی فعال فعلی از سال ۲۰۲۱ کاربر ItsIgnacioPortal است.
ساختار مخزن شامل این دستههاست: Discovery/ (Web-Content، DNS، Infrastructure)، Passwords/، Usernames/، Fuzzing/، Payloads/، Pattern-Matching/، Web-Shells/، Miscellaneous/ و دستهی نسبتاً جدید AI/LLM Testing/.
دو نکتهی عملی که خود مخزن هم به آنها اشاره میکند: کلون کامل SecLists حجیم است و چند دقیقه طول میکشد، و هشدار کاذب آنتیویروس ایجاد میکند (بهدلیل وجود payload و web-shell نمونه). این را از قبل با تیم IT هماهنگ کنید.
برای شروع، فهرستهای Discovery/Web-Content/raft-* و directory-list-2.3-medium.txt بهترین نسبت بازده به زمان را دارند. فهرست پرارجاع common.txt کوچک است و بازده پایینی دارد. مجموعههای مکمل که ارزش نام بردن دارند: وردلیستهای Assetnote که از دادهی خزش واقعی تولید میشوند، PayloadsAllTheThings (که مجموعهی payload است، نه وردلیست) و fuzzdb.
محدودیتها و اشتباهات رایج
«ffuf همهی مسیرهای پنهان سایت را پیدا میکند.» — نادرست. ffuf فقط چیزهایی را پیدا میکند که در وردلیست شما وجود دارند. یک مسیر با نام سازمانی و غیرقابل حدس در هیچ وردلیست عمومی نیست. کشف محتوا مکمل تحلیل جاوااسکریپت، بررسی sourcemapها، آرشیوهای تاریخی و خزش است — نه جایگزین آنها.
محدودیتهای دیگری که باید بدانید:
- سروصدای زیاد. ffuf هزاران درخواست در دقیقه میفرستد؛ روی محیط عملیاتی میتواند سرویس را ناپایدار کند یا شما را در WAF مسدود کند. با
-p(تأخیر) و-t(تعداد thread) نرخ را کنترل کنید. - فیلتر نادرست، یافته را پنهان میکند. اگر
-fsرا کورکورانه تنظیم کنید ممکن است دقیقاً همان پاسخ متفاوت را حذف کنید. - ffuf آسیبپذیری را تشخیص نمیدهد؛ فقط سطح حمله را کشف میکند. تحلیل با شماست.
- بازگشتی (
-recursion) بدون محدود کردن عمق، بهسرعت به انفجار تعداد درخواست منجر میشود.
جایگزینها: feroxbuster (نوشتهشده با Rust، نسخهی v2.13.1 در ۱۳ دسامبر ۲۰۲۵) که بهصورت پیشفرض بازگشتی است و همین تفاوت اصلیاش با ffuf است، و dirsearch (پایتون، نسخهی v0.4.3) که کندتر است اما خروجی خوانا، گزارش SQLite و قابلیت ذخیره و ادامهی اسکن دارد.
پرسشهای متداول
تفاوت ffuf با dirb و gobuster چیست؟
ffuf عمومیتر است. ابزارهای قدیمیتر عمدتاً برای brute-force دایرکتوری ساخته شدهاند، در حالی که ffuf با کلیدواژهی FUZZ میتواند نام پارامتر، مقدار پارامتر، هدر Host و بدنهی POST را هم فاز کند. سیستم فیلتر و واسنجی خودکار آن هم انعطافپذیرتر است.
آیا ffuf هنوز بهروز است؟
آخرین انتشار برچسبخورده v2.1.0 از سپتامبر ۲۰۲۳ است، اما مخزن هنوز کامیت و فعالیت دارد و ابزار همچنان استاندارد عملی صنعت است. توصیف درست این است: پایدار و پرکاربرد، ولی با آهنگ انتشار متوقفشده. اگر به توسعهی فعالتر نیاز دارید، feroxbuster گزینهی جایگزین است.
کدام وردلیست را برای شروع انتخاب کنم؟
از Discovery/Web-Content/raft-medium-directories.txt در SecLists شروع کنید و سپس directory-list-2.3-medium.txt را اجرا کنید. common.txt کوچک است و بازده کمی دارد. برای پارامترها burp-parameter-names.txt و برای فناوری خاص، وردلیستهای Assetnote مناسبترند.
آیا فاز کردن یک سایت خطرناک است؟
میتواند باشد. ffuf هزاران درخواست در دقیقه تولید میکند و روی سامانههای شکننده باعث افت کارایی یا قطعی میشود. در هر engagement حرفهای، نرخ و پنجرهی زمانی باید در قرارداد مشخص شده باشد. اجرای آن روی سامانهای که مجوز آن را ندارید، تخلف است.
