بررسی عمیق استخراج فیلدی”Field Extraction” در Katana

ریکان گام مهمی در شناسایی و ساختن سطح حمله یا دارایی های موردهدف قرارگرفته شده سازمان شما است. وب کراولینگ یک تکنیک شناسایی برجسته است که این امکان را به شما می دهد تا با پیمایش خودکار و استخراج داده ها از صفحات وب اطلاعات را جمع آوری کنید. با این حال، این فرآیند اغلب منجر به جمع شدن داده‌های بدون ساختار می‌شود که حاوی URL‌ها و پارامترهای بی‌شماری است که شناسایی اندپوینت‌ها، پارامترها و زمینه‌های منحصربه‌فرد برای استفاده در پایپ‌لاین اتومیشن یا شناسایی را دشوار می‌کند. باید راه آسان تری وجود داشته باشد.

اینجا می‌خواهیم Katana را به شما معرفی کنیم – یک ابزار CLI مبتنی بر Golang که توسط ProjectDiscovery توسعه یافته است. این ابزار از مرور هدلس برای اپلیکیشن‌های وب کراولینگ و تار عنکبوتی استفاده می‌کند و همزمان از استخراج فیلدی(field) پشتیبانی می‌کند. با قابلیت های استخراج فیلدی کاتانا، می توانید به راحتی خروجی خود را فیلتر کرده و به عنوان ورودی برای ابزارهای دیگر استفاده کنید یا آن را در پایپ‌لاین ریکان خود بگنجانید.

در این مقاله، پیچیدگی‌های استفاده از کاتانا برای وب کراولینگ، اجرای استخراج فیلدی ، و استفاده از خروجی ابزار برای بهبود پایپلاین ریکان را مورد بحث قرار خواهیم داد.

معرفی Katana

Katana یک ابزار منبع باز است که از حالت های استاندارد و هدلس  پشتیبانی می کند و امکان تجزیه و کراولینگ جاوا اسکریپت را فراهم می کند. همچنین Katana امکان پر کردن فرم خودکار قابل تنظیم، فیلد از پیش پیکربندی شده و کنترل دامنه مبتنی بر regex، و گزینه های خروجی قابل تنظیم، از جمله فیلدهای از پیش تعریف شده و پشتیبانی از چندین منبع ورودی مانند STDIN، URL، و LIST هم دارد.

ا Katana، می‌توانید استخراج Field را انجام دهید و از خروجی برای ایجاد پایپ لاین اتومیشن مجدد خود با استفاده از مجموعه ابزارهای ProjectDiscovery و سایر ابزارهای پرکاربرد recon استفاده کنید. Katana  را می‌توانید مستقیما با استفاده از Binary  یا Docker نصب کنید. می توانید در: https://github.com/projectdiscovery/katana اطلاعات بیشتری پیدا کنید

پس از نصب Katana، به منظور تایید نصب دستور زیر را اجرا کنید:

خط فرمان: katana --version

استخراج فیلدی (Field Extraction) چیست؟

استخراج فیلد فرآیندی است که به استخراج فیلدهای داده خاص از داده های بدون ساختار اجازه می دهد تا برای پردازش و استفاده بیشتر بعدی قابل استفاده تر شوند. این ویژگی کمک می کند تا با تمرکز بر زمینه های خاص مورد علاقه، میزان داده هایی که باید پردازش شوند، کاهش می یابد. این امکان  به ویژه در کارهای مرتبط با امنیت مانند ریکان ، جایی که شناسایی قطعات کلیدی داده، مانند اندپوینت ها یا عبارات ورودی، که برای شناسایی و کاهش تهدیدات بالقوه حیاتی بکار می‌روند، ، مفید باشد.

به عنوان مثال، فرض کنید می‌خواهید برای آسیب‌پذیری‌های Cross-Site Scripting (XSS)  فوزینگ خودکار انجام دهید. در این مورد، می‌توانید تلاش کنید پارامترهای مختلف منحصربه‌فرد را از خروجی استخراج کنید و اندپوینت های  منحصربه‌فرد شناسایی‌شده را با این پارامترهای حاوی پی‌لودهای XSS برای بررسی بازتاب بالقوه، عیب یابی کنید. نمودار جریان زیر این مورد استفاده را توضیح می دهد:

با استفاده از قوانین regex، Katana به فیلدهای سفارشی اجازه می دهد تا اطلاعات خاصی را از پاسخ های صفحه استخراج و ذخیره کنند. این فیلدهای سفارشی با استفاده از یک فایل پیکربندی YAML تعریف می شوند و از مکان پیش فرض در $HOME/.config/katana/field-config.yaml بارگیری می شوند. همچنین، می‌توانید از گزینه -flc برای بارگذاری یک فایل پیکربندی فیلد سفارشی از یک مکان دیگر استفاده کنید.

استفاده از Katana برای استخراج Field سفارشی

استفاده از Katana برای استخراج field پیش‌فرض

Katana از Filed های پیش‌فرض چندگانه‌ای مثل url, path, fqdn, rdn, rurl, qurl, qpath, file, key, value, kv, dir, udir پشتیبانی می‌کند که بدون نیاز به استفاده از regex سفارشی خاصی می‌توان به صورت مستقیم آنها را استخراج کرد. می توانید جدول ارائه شده در https://github.com/projectdiscovery/katana#-field را بررسی کنید تا بفهمید هر شناسه فیلد چه کاری انجام می دهد.

اجازه دهید این موارد را بااستفاده از مراحل زیر در عمل هم مشاهده کنیم:

  1. ابتدا، ابزار را بدون اضافه کردن هیچ فیچر فلگی (feature flags) اجرا کنید تا ببینید داده ها چگونه برگشت داده می‌شوند.
خط فرمان: katana -u https://yahoo.com

Field Extraction

  1. این اسکرین شات از داده ها در پایان اجرا نشان می دهد که چند نقطه پایانی برگردانده شده است. این ابزار داده‌هایی حاوی تقریبا 205 اندپوینت را برگردانده است که ممکن است دارای دوگانگی یا در غیر این صورت حاوی داده‌هایی باشند که به درد ما نمیخورند.

3. اکنون، ابزار را به منظور استخراج فیلد qurl بااستفاده از استخراج فیلد پیش‌فرض، اجرا کنید. این دستور URL های حاوی پارامترهای کوئری را استخراج می‌کند:

خط فرمان: katana -u https://yahoo.com -f qurl
  1. در حال حاضر، خروجی فقط حاوی اندپوینت هایی با با پارامتر کوئری است و خروجی از 205 اندپوینت به 25 کاهش یافته است.

Field Extraction

استخراج فیلدی(Field) سفارشی تعریف شده توسط کاربر بااستفاده از Katana

Katana همچنین از حالت استخراج فیلدی (Field) با Regex تعریف شده از سمت کاربر هم پشتیبانی می‌کند.

  1. ابتدا، ابزار را بدون اضافه کردن هیچ فیچر فلگی (feature flags) اجرا کنید تا ببینید داده ها چگونه برگشت داده می‌شوند.
خط فرمان : katana -u https://tesla.com

Field Extraction

  1. این دستور داده‌هایی حاوی تقریبا 1033 اندپوینت را برگرداند که ممکن است دارای دوگانگی یا حاوی داده‌هایی باشند که به درد ما نمیخورند.
  2. اکنون، بااستفاده از دستور زیر، ابزار را بااستفاده از حالت استخراج Field برای استخراج فیلد email اجرا کنید:
خط فرمان:  katana -u https://tesla.com -f email
  1. اکنون، خروجی ما فقط دربرگیرنده آدرس های ایمیل استخراج شده بالقوه است.

به عنوان یک راه‌حل جایگزین، با اجرای مراحلی که درادامه آمده، می‌توانید از گزینه  -flc برای بارگذاری فایل پیکربندی یک فیلد سفارشی از یک مکان دیگر استفاده کنید:

  1. یک فایل Regex بااستفاده از مستندی که در لینک زیر معرفی شده بسازید: https://github.com/projectdiscovery/katana#custom-fields

2. برای بارگاری فایل پیکربندی از مسیری که کاربر تعریف کرده است، دستور زیر را اجرا کنید:

خط فرمان : katana -u https://tesla.com -flc custom.yaml -f test
  1. براساس Regex داده شده، خروجی موردنظر “,email,” برگردانده شده است.

 

توجه: در دستور بالا، شما باید مقدار فایل پیکربندی (.yaml) را در پارامتر  -flc ذخیره کنید و “name” مورد استفاده در فایل پیکربندی را در پارامتر  -f وارد کنید تا خروجی مورد نظر را به دست آورید.

نتیجه گیری

Katana ابزار قدرتمندی است که می تواند وب کراولینگ را آسان تر، کارآمدتر و قابل تنظیم تر کند. قابلیت‌های استخراج فیلدی (field) پیشرفته آن به کاربران اجازه می‌دهد تا خروجی را مطابق با نیازهای خاص خود برای پردازش بیشتر تنظیم کنند. چه یک محقق امنیتی، یا یک تحلیلگر داده یا فقط کسی که به دنبال استخراج اطلاعات از وب هستید، احتمالا موارد استفاده خوبی برای استفاده از امکانات کاتانا خواهید داشت.

حتما امتحان کنید!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *