XSStrike ابزاری اپنسورس است که با زبان پایتون نوشته شده و برای شناسایی حملات XSS طراحی گردیده بدین صورت که جهت تست وب اپلیکیشن روشی تحت عنوان Fuzzy را مورد استفاده قرار میدهد به طوری که یکسری به اصطلاح Payload یا دیتای نامعتبر به عنوان ورودی به اپلیکیشن داده میشود تا بتوان عملکرد و آسیبپذیری آن را در مقابل حملات، باگها و اِکسپشنهای احتمالی مورد بررسی قرار داد (جهت آشنایی بیشتر با مفهوم XSS میتوانید به مقالۀ آشنایی با مفهوم XSS و جلوگیری از آن در زبان برنامهنویسی PHP مراجعه نمایید.)
برخی از شاخصترین ویژگیهای XSStrike
در این ابزار الگوریتمی تحت عنوان Levenshtein مورد استفاده قرار میگیرد تا در فرآیند تست و بررسی میزان آسیبپذیری وب اپلیکیشن یکسری Context بازگشتی از آن را با یکدیگر مقایسه کند که در نتیجۀ بهکارگیری این الگوریتم دقت XSStrike افزایش پیدا میکند. روی هم رفته، این ابزار اپنسورس از ماژولهای مختلفی تشکیل شده که عبارتند از:
- Fuzzer: این ماژول پارامترهای مد نظر را از لینک ورودی به روش فازی تست کرده و با کمک سایر ماژولها یک پیلود متناسب با ریسپانس بازگشتی از وبسایت را میسازد. در واقع، ماژول Fuzzer بر اساس اینکه ریسپانس بازگشتی مربوط به کدام پارامتر ورودی و به چه تعداد است، تلاش میکند تا به اصطلاح کانتکست بازگشتی را با پارسِرهای HTML و JavaScript آنالیز کرده و پیلود مناسب را تولید کند.
- Striker: این ماژول با استفاده از پیلودهای تولیدشده به صورت اصطلاحاً Brute Force سعی در حمله به پارامترهای مد نظر از لینک دریافتی و یا شناسایی برخی پارامترهای پنهانِ آسیبپذیر آن دارد (در روش Brute Force یکسری حملات به بخش مورد نظر به صورت تکراری و در حجم بالا انجام میشود.)
- Spider: ماژول نیز به عنوان یک به اصطلاح Crawler عمل کرده و تمامی لینکهای موجود در صفحۀ اصلی سایت را یافته و میزان آسیبپذیری آنها را در برابر حملات XSS بررسی میکند.
- Ninja: این ماژول با بهکارگیری متد مهندسی معکوس در رابطه با قوانین Web Application Firewall یا به اختصار WAF سعی میکند تا از راه دور زدن فایروالها، مشکلات وب اپلیکیشن مد نظر را شناسایی کرده و در نهایت پیلود مناسب را به منظور حمله به وبسایت و سنجش میزان آسیبپذیری آن تولید میکند.
- Hulk: این ماژول در جهت تشخیص فایروالها و تلاش برای دور زدن آنها اقدام میکند با این تفاوت که به صورت دیفالت لیستی از یکسری پیلود را دارا است که آنها را به منظور اصطلاحاً Injection و حمله به پارامتر انتخابی مورد استفاده قرار میدهد.
همچنین این ابزار قابلیت تست و تشخیص حملاتی از نوع Blind XSS را دارا است که نوعی حملۀ XSS است که در آن تمامی پیلودهای مخرب در سرور وبسایت، دیتابیس و یا در فایلهای مخصوص لاگگیری ذخیره میشود.
نتیجهگیری
به طور خلاصه میتوان گفت که سایر اِسکنرهای XSS یکسری پیلود آماده داشته و آنها را در پارامترهای یوآرال به اصطلاح اینجکت میکنند تا بدین طریق آسیبپذیری وب اپلیکیشن را در برابر حملات مانیتور کنند در حالی که XSStrike چهار ماژول پارسر داشته و با استفاده از آنها ریسپانس بازگشتی از وب اپلیکیشن را آنالیز میکند و با بهکارگیری روش فازی، پیلودهایی را جهت تست آسیبپذیری وبسایت در برابر حملات تولید میکند.