در این سناریو شما با یک وباپلیکیشن چندبخشی مبتنی بر Virtual Host / Subdomain روبهرو هستید که همهی سرویسها روی یک IP میزبانی میشوند، اما بر اساس مقدار هدر Host محتوای متفاوتی ارائه میگردد.
نقطهی شروع، برقراری امکان Resolve کردن دامنههای آزمایشگاه در سیستم خودتان است تا بتوانید سرویسهای مختلف را با نام درست صدا بزنید و رفتار واقعی اپلیکیشن را مشاهده کنید.
پس از آن، با بررسی صفحهی عمومی سرویس اصلی، باید تصویر کلی از ساختار برنامه (بخشها، سرویسهای مرتبط و مسیرهای قابل دسترس) بهدست آورید.
گام کلیدی بعدی، کشف vhostها است. هدف این مرحله شناسایی زیردامنهها یا میزبانهای مجازی پنهان است که ممکن است پنلها، پرتالها یا سرویسهای حساستری نسبت به صفحهی عمومی داشته باشند.
برای این کار معمولاً از ابزارهای فازینگ/کشف مانند ffuf استفاده میشود تا با تغییر هدر Host و تست لیستهای متداول زیردامنه، مواردی که پاسخ متفاوت (از نظر کد وضعیت، اندازه پاسخ یا الگوی محتوا) میدهند استخراج شوند. سپس vhostهای کشفشده به مسیر تست شما اضافه میشوند تا بتوانید آنها را مثل یک دامنه واقعی در مرورگر و ابزارها بررسی کنید.
پس از ورود به یکی از سرویسهای مرتبط که قابلیت ثبتنام/ورود و ارسال محتوا را فراهم میکند، باید جریان کاری برنامه را دقیق بررسی کنید:
ساخت حساب، ورود، رسیدن به فضای کاربری، و شناسایی فرمها و فیلدهایی که ورودی کاربر را میپذیرند (مثل عنوانها و توضیحات).
این مرحله صرفاً «یافتن محل ورود داده» نیست؛ بلکه باید مشخص کنید داده پس از ثبت، کجا و چگونه نمایش داده میشود (لیستها، پروفایل، صفحات مرور/بازبینی و…)، چون همین چرخهی ذخیرهسازی و رندر شدن، مسیر اصلی بسیاری از باگهای سمت کاربر را شکل میدهد.
در نهایت، هدف شما ارزیابی این است که آیا ورودیهای متنی هنگام نمایش، بهدرستی Encode/Sanitize شدهاند یا خیر. تمرکز روی فیلدهایی است که هم ذخیره میشوند و هم دوباره در صفحات دیگر رندر میگردند.
نکته: قبل از شروع، لازم است دامنه office.local را به آدرس IP ماشین هدف در فایل etc/hosts/ سیستم خود نگاشت کنید تا دسترسی به سرویس ممکن شود.
لینک رایت آپی که این چالش بر اساس آن طراحی شده است:
https://www.pethuraj.com/blog/microsoft-bug-bounty-writeup-stored-xss-vulnerability/
این چالش توسط PingQueen طراحی شده است.