در این بخش از مجموعه آشنایی با متدولوژی Burp Suite به بخش سوم از این متدولوژی که مربوط به بررسی Missing Function Level Access Control می باشد، می پردازیم.
هر کسی با دسترسی به یک برنامه کاربردی از طریق شبکه، میتواند درخواستهای مختلف را برای آن ارسال کند. بنابراین، برنامههای کاربردی وب باید حقوق دسترسی سطح عملکرد را برای تمام اقدامات درخواستی توسط هر کاربر بررسی کنند.
اگر بررسیها به درستی اجرا نشده و Enforce نشوند، کاربران مخرب ممکن است قادر به نفوذ به نواحی بحرانی یک برنامه کاربردی وب، بدون مجوز مناسب باشند. در این مثال ما دو حمله کنترل دسترسی معمول به یک برنامه کاربردی وب آموزشی WebGoat را نشان خواهیم داد.
نسخه WebGoat ای که ما استفاده میکنیم از پروژه OWASP Broken Web App گرفته شدهاست.
دستکاری پارامتر
ابتدا اطمینان حاصل کنید که Burp به درستی برای مرورگر شما پیکربندی شدهاست. سپس اطمینان حاصل کنید که در بخش 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” را از “۱۰۱” به “۱۰۲” تغییر میدهیم. هنگامی که درخواست ویرایش شد، از دکمه “Forward” برای ارسال درخواست استفاده کنید.
در این مثال شما باید بیش از یکبار روی دکمه Forward کلیک کنید تا پاسخ مناسب را از سرور دریافت کنید و نتایج را در برنامه کاربردی وب مشاهده کنید.
این برنامه به یک کاربر اجازه میدهد تا به صفحه پروفایل کارمندان کاربر دیگری دسترسی داشته باشد.
با ویرایش پارامترها در درخواست، کنترلهای دسترسی برنامه، اصطلاحا Bypass میشود.
مرور اجباری یا Force Browsing
در این سناریو، مهاجم از روش Force Browsing برای دسترسی به URL های هدف استفاده میکند. ابتدا مشابه موارد مذکور، اطمینان حاصل کنید که Burp به درستی با مرورگر شما پیکربندی شدهاست. سپس اطمینان حاصل کنید که در بخش Proxy و تب Intercept، عبارت Intercept is off نمایش داده شده باشد.
در مرورگر خود، صفحه برنامه کاربردی وب که آزمایش میکنید را ببینید.
به “Burp” برگردید.
در بخش Proxy و تب Intercept، اطمینان حاصل نمایید که Intercept is on تنظیم شده باشد. در مرورگر خود، درخواست بازدید از صفحهای که آزمایش میکنید را ارسال کنید.
حالا میتوانید درخواست Intercept شده را در بخش Proxy و تب Intercept مشاهده کنید. بر روی هر جایی از درخواست راست کلیک کنید تا منوی مربوط به Burp برای شما نمایش داده شود.
بر روی”Send to Intruder” کلیک کنید.
به تب “Positions” در بخش”Intrder” بروید. برای پاک کردن مکانهای اعمال Payload های پیشنهادی، روی دکمه “Clear” کلیک کنید.
در این حمله ما در تلاش میکنیم تا فایلها و دایرکتوریها را پیدا نموده و مشاهده کنیم. نام فایل را در URL انتخاب نموده و از دکمه “Add” استفاده نمایید تا در ادامه، Payload مورد نظر در این بخش قرار داده شوند.
به تب “Payloads” بروید.
در بخش “Payload type” از گزینههای موجود، Simple list را انتخاب نمایید. در بخش “Payload Options [Simple list]” از منوی موجود که باعبارت “Add from list…” مشخص شده است، گزینه”Directories – short” و “Filenames – short” را انتخاب کنید. توجه داشته باشید که گزینه “Add from list…” در نسخه Pro از Burp Suite قابل استفاده خواهد بود ولی سازی گزینههای قابل بهرهبرداری میباشند.
بر روی دکمه “Start Attack” کلیک کنید.
در ادامه یک پنجره با عنوان “Intruder Attack” برای شما ظاهر خواهد شد که نتایج ارسال درخواستها در آن قابل مشاهده بوده و مرتب سازی نتایج بر اساس ستونهای نمایش داده شده، امکان پذیر میباشد. در این مثال ما از “Length” استفاده خواهیم کرد. بر روی سرستون “Length” کلیک کنید. البته “Status” نیز یک روش مفید برای سازماندهی این جدول نتایج خواهد بود.
با مرتبسازی توسط “Length” یا “Status” برخی نتایج جالب را میتوان مشاهده نمود. شما میتوانید هر نتیجهای که نیاز به بررسی بیشتری دارد به Burp Repeater، ارسال کنید. برای این منظور بر روی درخواست مورد نظر راست کلیک نموده و گزینه Send to Repeater را انتخاب نمایید.
به تب “Repeater” بروید.
برای دنبال کردن درخواست روی “Go” کلیک کنید.
در این مثال شما باید از دکمه “Follow Redirection” برای دنبال کردن برنامههای کاربردی جهت هدایت مجدد و مشاهده پاسخ استفاده کنید.
در برخی از نتایج، ارسال مجدد منجر به یک پاسخ ۴۰۴ میشود که نشان میدهد هیچ مشکلی با این آسیبپذیری وجود ندارد.
استفاده از عبارت یا همان Payload مربوط به “/conf” به پاسخ “OK 200” منجر میشود. شما میتوانید پاسخ درخواست ارسال شده را در بخش “Response” مشاهده نموده و یا در هر جایی از پاسخ راست کلیک نموده و گزینه Copy URL را انتخاب نموده و با مراجعه به مرورگر و Paste نمودن آن به آدرس مورد نظر و پاسخ ارسال شده، دسترسی داشته باشید.
در این مثال ما میتوانیم به صفحه پیکربندی برنامه دسترسی داشته باشیم. این برنامه به یک کاربر غیر معتبر یا در اصطلاح Unauthenticated User اجازه میدهد تا سطح دسترسی و رمزهای عبور را برای سایر کاربران پیکربندی کند.
اگر یک کاربر احراز هویت نشده بتواند به URL هایی دسترسی پیدا کند که نیاز به احراز هویت یا نگه داشتن اطلاعات حساس داشته باشند، این یک آسیبپذیری امنیتی خواهد بود.