apiffuf؛ یه فاز کننده URL برای کشف اندپوینتهای API
خلاصهٔ کاملتر
این مقاله ابزار apiffuf رو معرفی میکنه؛ یه fuzzer برای URLهای API که تیم Jsmon ساخته و با Go نوشته شده. ایدهش سادهست: تو یه لیست از هاستها بهش میدی و یه فایل از مسیرهای احتمالی API، اون هم همه ترکیبهای ممکن رو میسازه، روی هرکدوم درخواست میزنه و بهت میگه کدوم اندپوینتها زندهان. این کار برای کارای recon و کشف سطح حملهٔ یه API بهدرد میخوره.
طرز استفادهش هم با دوتا فلگ اصلی هست: هاستها با -hosts (یا -u) و فایل مسیرها با -paths (یا -w). یه مثال سادهش این شکلیه:
apiffuf -hosts api.jsmon.sh -paths paths.txtبجز این دوتا، کلی فلگ دیگه هم داره: متد HTTP رو با -X عوض میکنی، هدر دلخواه (مثل توکن احراز هویت) رو با -H میفرستی، تعداد goroutineهای موازی رو با -t تنظیم میکنی و با -rate میتونی نرخ درخواست در ثانیه رو محدود کنی که سرور هدف رو زیر فشار نذاری.
یه بخش جالبش نرمالسازی URLـه. نویسنده توضیح میده که apiffuf قبل از فرستادن درخواست، ترکیب هاست و مسیر رو مرتب میکنه؛ مثلاً اسلش اضافه رو حذف میکنه و اگه پروتکل تو ورودی نباشه، بهصورت پیشفرض https میذاره. اینجوری دیگه لازم نیست خودت نگران فرمت دقیق ورودی باشی.
خروجی پیشفرضش روی ترمینال رنگیه و روی هر خط پنج چیز رو نشون میده: خود URL، کد وضعیت، Content-Type، طول محتوا و عنوان صفحه (اگه موجود باشه). نکتهٔ مهم اینه که فقط URLهایی که واقعاً یه پاسخ HTTP گرفتن نمایش داده میشن و خطاهای اتصال، timeout و خطای DNS کنار گذاشته میشن. علاوه بر متن، خروجی JSON و CSV هم با فلگهای -oJ و -oC پشتیبانی میشه.
تو بخش هشدار امنیتی هم اومده که وقتی از متدهای PUT، PATCH یا DELETE استفاده میکنی، خود ابزار یه اخطار چاپ میکنه؛ چون این متدها میتونن داده رو تغییر بدن یا پاک کنن. تاکید مقاله اینه که این ابزار رو فقط روی هدفهایی استفاده کن که مجوز تستشون رو داری. لایسنسش هم AGPLv3 هست.
نکات کلیدی:
- ابزار خط فرمان متنباز نوشتهشده با Go از تیم Jsmon برای کشف اندپوینتهای فعال API
- لیست هاستها رو با لیست مسیرها ترکیب میکنه و فقط URLهای پاسخدهنده رو گزارش میده
- فلگهای مفید: -X برای متد، -H برای هدر، -t برای موازیسازی و -rate برای محدود کردن نرخ درخواست
- URLها رو نرمالسازی میکنه و اگه پروتکل نباشه پیشفرض https میذاره
- خروجی متنی، JSON و CSV داره و فقط باید روی هدفهای مجاز استفاده شه




