
در این بخش از مجموعه آشنایی با متدولوژی Burp Suite به بخش هفتم از این متدولوژی به بررسی Missing Function Level Access Control می پردازیم.
هر کسی که به یک برنامه از طریق شبکه یا اینترنت دسترسی داشته باشد می تواند درخواستی را برای آن ارسال نماید. بنابراین برنامه های تحت وب باید حقوق دسترسی سطح عملکرد یا همان Function Level Access Right را برای تمام درخواست های ارسال شده توسط کاربر بررسی و تایید نمایند.
در صورت عدم بررسی درخواست های ارسال شده، کاربران مخرب ممکن است بتوانند بدون مجوز مناسب به مناطق مهم برنامه دسترسی داشته و از آن سوء استفاده نمایند.
در این مثال ما به دو حمله رایج کنترل دسترسی را در یک برنامه آموزشی تحت وب (WebGoat) خواهیم پرداخت.
ابتدا، اطمینان حاصل کنید کهBurp به درستی با مرورگر شما پیکربندی شدهاست. در تب Burp Proxy، اطمینان حاصل کنید که در بخشProxy و تب Intercept، عبارتIntercept is off نمایش داده شده باشد.

در برنامه WebGoat صفحه Access Control Flaws – Stage 1: Bypass Business Layer Access Control Scheme به کاربر اجازه می دهد تا مشخصات پروفایل خود را ببیند. ابتدا وارد یکی از پروفایل ها (Larry) می شویم.

به “Burp” برگردید.
در بخشProxy و تب Intercept، اطمینان حاصل نمایید کهIntercept is on تنظیم شده باشد.

در مرورگر بر روی View Profile کلیک نمایید. در این بخش، درخواست پیش از ارسال به سمت سرور در Burp قابل مشاهده و ویرایش می باشد.

یکی از راه های ساده برای مشاهده و ویرایش پارامترها، تب Params می باشد. در این مثال ما مقدار employee_id را از 101 به 102 تغییر می دهیم. پس انجام این تغییر بر روی Forward کلیک می کنیم تا درخواست ارسال شود.
در این مثال شما باید بیش از یک بار روی دکمه Forward کلیک کنید تا پاسخ مناسب را از سرور دریافت کنید و نتایج را در برنامه وب مشاهده کنید.

در این مثال، برنامه اجازه مشاهده پروفایل کاربران دیگر را به شما خواهد داد. بدین صورت با تغییر در پارامترهای Request در برنامه، امکان عبور از مکانیزم کنترل دسترسی وجود خواهد داشت.

Forced Browsing
در این مثال نفوذگر به منظور دسترسی به URL های هدف، از Force Browsing استفاده می کند.
در تب Burp Proxy، اطمینان حاصل کنید که در بخشProxy و تب Intercept، عبارتIntercept is off نمایش داده شده باشد.

در مرورگر خود، صفحه ای از برنامه که قصد تست آن را دارید مشاهده کنید:

به “Burp” برگردید.
در بخشProxy و تب Intercept، اطمینان حاصل نمایید کهIntercept is on تنظیم شده باشد.

پس از مشاهده درخواست ارسال شده در Burp، بر روی درخواست راست کلیک نموده و Send to Intruder را انتخاب نمایید.

به بخش Positionsدر تب Intruder رفته و بر روی Clear کلیک نمایید.

در این حمله ما در حال تلاش برای مکان یابی و مشاهده فایل ها و دایرکتوری ها هستیم. بدین منظور نام فایل در URL را انتخاب نموده و از دکمه Add استفاده می کنیم.

در ادامه به تب Payloads رفته و در بخش Payload type گزینه Simple list را انتخاب نمایید. سپس در قسمت Payload Options [Simple list]، از منوی Add from list گزینه های Directories – short و Filenames – short را انتخاب نمایید.

در ادامه بر روی Start Attack کلیک نمایید.

پس از کلیک بر روی Start Attack، یک پنجره Intruder Attack باز شده و نتایج درخواست های ارسال شده به شما نمایش داده خواهد شد. شما در این پنجره می توانید مرتب سازی لازم را بر اساس ستون های نمایش داده شده، انجام دهید. در این بخش ما از ستون Length استفاده می کنیم. همچنین ستون Status نیز روش مناسبی برای مرتب سازی درخواست ها می باشد.

با مرتب سازی درخواست ها بر اساس ستون های Length یا Status ما به نتایج جالبی می رسیم. هر گونه نتیجه ای که مستلزم بررسی بیشتر است را به Burp Repeater ارسال کنید.

به بخش Repeater مراجعه نموده و برای ارسال درخواست ها بر روی دکمه Go کلیک نمایید.

در این مثال نیاز به کلیک بر روی Follow redirection خواهید داشت تا پاسخ مناسب را دریافت نمایید. در برخی از نتایج، ارسال تغییر مسیر منجر به پاسخ 404 میشود که نشان میدهد مشکلی یا آسیبپذیری وجود ندارد.

پیلود /conf پاسخی با کد 200 به شما برمی گرداند. نتایج پاسخ ارسال شده در این بخش قابل مشاهده می باشد و شما می توانید با راست کلیک بر روی پاسخ، گزینه Copy URL را انتخاب نمایید و آن را در مرورگر خود Paste نمایید تا نتیجه را مشاهده نمایید.

در این مثال ما می توانیم به صفحه تنظیمات برنامه دسترسی داشته باشیم. این برنامه به یک کاربر احراز هویت نشده اجازه می دهد تا امتیازات مدیریتی (administrative privileges) و رمز عبور را برای سایر کاربران پیکربندی کند.

اگر یک کاربر احراز هویت نشده بتواند به URL هایی که نیاز به احراز هویت دارند یا اطلاعات حساسی را در خود نگه دارد، دسترسی پیدا کند، این یک آسیب پذیری امنیتی محسوب می شود.