TOOL · ابزارها فازر وب

ffuf — اف‌اف‌یواف

Fuzz Faster U Fool

ffuf یک فازر وب بسیار سریع نوشته‌شده با Go است که با جای‌گذاری کلیدواژه‌ی FUZZ در هر بخش از درخواست، مسیرها، پارامترها، هدرها و زیردامنه‌های مجازی را کشف می‌کند.

تیم فنی پی‌هانتر

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 حرفه‌ای، نرخ و پنجره‌ی زمانی باید در قرارداد مشخص شده باشد. اجرای آن روی سامانه‌ای که مجوز آن را ندارید، تخلف است.

پیشگیری / رفع

نکات کلیدی استفاده از ffuf:

  • همیشه با -ac شروع کنید. بدون واسنجی خودکار، روی برنامه‌هایی که برای همه‌چیز 200 برمی‌گردانند خروجی بی‌معنی می‌گیرید.
  • پیش از فیلتر کردن، یک اجرای کوتاه بدون فیلتر انجام دهید تا «پاسخ پایه» را بشناسید، سپس -fs/-fw را تنظیم کنید.
  • نرخ را با -t و -p کنترل کنید و برای محیط عملیاتی حتماً پنجره‌ی زمانی و سقف نرخ را با مشتری توافق کنید.
  • کوکی یا توکن نشست را با -H بدهید؛ فاز کردن ناشناس روی برنامه‌ی احراز هویت‌شده تقریباً بی‌فایده است.
  • با پسوند فایل هم فاز کنید (-e .php,.bak,.zip,.old) — فایل‌های پشتیبان یکی از پربازده‌ترین یافته‌هاست.
  • خروجی را با -o ذخیره کنید تا مبنای مستندسازی و آزمون مجدد باشد.
  • هرگز روی دامنه‌ای که مجوز کتبی آزمون آن را ندارید فاز نکنید؛ حجم ترافیک ffuf آن را به‌روشنی قابل تشخیص و قابل پیگیری می‌کند.
→ بازگشت به دانشنامه
PUT IT TO THE TEST

امنیت سامانه‌ی شما را
به مهاجمان واگذار نکنید

تیم پی‌هانتر با دیدِ یک مهاجم واقعی، این آسیب‌پذیری‌ها و ده‌ها مورد دیگر را روی دارایی‌های شما می‌سنجد.