در این چالش، شما با یک سناریوی چندمرحلهای در محیط یک سامانه بانکی آموزشی روبهرو هستید که هدف آن بررسی رفتار برنامه در برابر HTTP Parameter Pollution است.
بخشهای مختلف سامانه از طریق چند سرویس و میزبان مجازی در دسترس قرار دارند و هر بخش، ورودیهای کاربر را به شکلی متفاوت پردازش میکند.
تمرکز اصلی چالش روی این است که ببینید وقتی یک پارامتر بیش از یکبار در درخواست ارسال میشود، لایههای مختلف برنامه چه برداشتی از آن دارند.
در طول چالش باید مسیرهای عمومی، فایلهای JavaScript، مستندات API، فرمهای ورود و لینکهای تولیدشده توسط برنامه را بررسی کنید.
بعضی از سرنخها بهصورت مستقیم در رابط کاربری یا فایلهای سمت کلاینت قرار داده شدهاند و به شما کمک میکنند متوجه شوید کدام پارامترها برای کنترل دسترسی، انتخاب منبع، تعیین نقش کاربر یا ساخت لینکهای بعدی استفاده میشوند.
این سناریو چند نوع رایج از HPP را پوشش میدهد؛ از جمله اختلاف رفتار میان Gateway و Backend، تفاوت پردازش پارامترهای تکراری در Query String، ارسال چند مقدار برای یک فیلد در POST Body و همچنین تزریق پارامتر در لینکهای تولیدشده سمت کلاینت از طریق کاراکترهای URL-encoded. هدف این است که بررسی کنید آیا مقداری که توسط یک لایه اعتبارسنجی میشود، همان مقداری است که در منطق نهایی برنامه استفاده میشود یا خیر.
برای تکمیل چالش باید با تحلیل دقیق درخواستها و پاسخها، ناهماهنگی میان اجزای مختلف برنامه را شناسایی کرده و از آن برای پیشروی در مراحل استفاده کنید.
در پایان انتظار میرود بتوانید ریشه آسیبپذیری، اثر امنیتی آن و راهکارهای دفاعی مناسب مانند نرمالسازی ورودی، رد پارامترهای تکراری غیرمنتظره و استفاده صحیح از URL Encoding را توضیح دهید.
نکته: برای شروع چالش نیاز هست که دامنه hpp-bank.test را در فایل hosts سیستم خود اضافه کنید.
همچنین جهت دسترسی به صفحه مربوط به آزمایشگاه WSTG می توانید به لینک زیر مراجعه نمایید:
درصد پیشرفت حل چالش
0%