در این بخش از مجموعه آشنایی با متدولوژی Burp Suite به بخش هفتم از این متدولوژی به بررسی آسیبپذیری Insecure Direct Object References می پردازیم.
ارجاع مستقیم شیء زمانی اتفاق میافتد که یک توسعهدهنده یک Reference را به یک شیء پیادهسازی داخلی، مانند یک فایل، دایرکتوری، رکورد پایگاه داده یا کلید، بهعنوان یک URL یا پارامتر فرم ارجاع میدهد. در صورتی که کنترل دسترسی به درستی انجام نشود، یک مهاجم میتواند ارجاعات مستقیم اشیاء را برای دسترسی به اشیاء دیگر بدون داشتن مجوز، دستکاری کند.
در مثال ما، عملکرد Authentication / Authorization برنامه مانع از دسترسی یک کاربر به داده یا رکورد کاربر دیگر با تغییر مقدار کلید شناسایی داده نمیشود.
در این بخش، چگونگی بررسی آسیبپذیری Insecure Direct Object Reference به وسیله بخشهای Intruder و Repeater توضیح داده خواهد شد.
در این آموزش، از ابزار آموزشی “Cyclone” استفاده شده که در OWASP’s Broken Web Application Project موجود است.
ابتدا، اطمینان حاصل کنید کهBurp به درستی با مرورگر شما پیکربندی شدهاست. در تب Burp Proxy، اطمینان حاصل کنید که در بخشProxy و تب Intercept، عبارتIntercept is off نمایش داده شده باشد.
به صفحه ای که قصد انجام فرآیند تست برای آن دارید مراجعه نمایید.
در این مثال با اطلاعاتی که در صفحه اول برنامه “Cyclone” وجود دارد به برنامه لاگین کنید. سپس از منوی Account بر روی “My Bank Accounts” کلیک نمایید.
به “Burp” برگردید.
در بخشProxy و تب Intercept، اطمینان حاصل نمایید کهIntercept is on تنظیم شده باشد.
در مرورگر خود صفحه را Reload نمایید تا درخواستهای ارسال شده در Burp نماش داده شود.
بر روی درخواست کلیک کنید و گزینه Send to Intruder را انتخاب کنید.
به بخش Intruder رفته و سپس به تب Positions مراجعه نمایید.
بر روی دکمه Clear کلیک کنید تا بخشهای پیش فرض انتخاب شده، از حالت انتخاب خارج شوند.
قسمتی از URL که ارجاع به یک شیء را انجام میدهد، انتخاب کنید. در این مورد شناسه کاربر است که در URL قرار داده شده است.
سپس بر روی دکمه Add کلیک کنید تا این بخش مشابه تصویر زیر به حالت انتخاب درآید.
سپس به تب Payloads بروید.
در این بخش شما میتوانید، Payload Type مورد نظر خود را انتخاب کنید. برای تست مورد نظر ما، در قسمت Payload Type، مقدار Numbers را انتخاب کنید.
در زیر قسمت Payload Options، شما میتوانید بازه عددی مورد نظر خود را انتخاب کنید. در این تست ما بازه یک تا 1000 را انتخاب نموده و Step را یک قرار میدهیم تا Burp یک به یک اعداد را در جایگاه انتخاب شده در بخش قبلی قرار دهد.
پس از انجام تنظیمات مذکور، در انتها بر روی Start Attack کیلک کنید.
در پنجره Intruder Attack شما میتوانید نتایج نمایش داده شده را با کلیک بر روی هر یک از ستون ها، مرتب (sort) نمایید.
در این مثال ما میتوانید از ستون Status یا Length استفاده نماییم.
نتایج کاملاً واضح تقسیم میشوند و ابزاری برای بررسی بیشتر در اختیار ما قرار میدهند.
شما میتوانید برای بررسی بیشتر، هر یک از درخواستهایی که به نظر جذاب میرسند را به بخش Repeater منتقل نموده و بررسیهای بیشتر را در این قسمت انجام دهید. در ادامه نیز میتوانید، آدرس مورد نظر را کپی نموده و در مروگر خود آن را Paste نموده و نتیجه را مشاهده کنید.
همچنین شما میتوانید Request و Response را با کلیک بر روی هر درخواست در همین پنجره Intruder Attack هم مشاهده نمایید.
درخواستهای 1-100 (به غیر از شناسه اصلی کاربر که 4 است) نام کاربری سایر حسابها را در برنامه وب نشان میدهد.
علاوه بر این شما میتوانید از قابلیت Grep-Extract نیز استفاده نمایید تا نامهای کاربری را در جدول نتایج مشاهده کنید.
بدین منظور به تب Options در پنچره Attack بروید. قسمت Grep-Extract را پیدا نموده و بر روی Add کلیک کنید.
در این قسمت شما میتوانید موقعیت مربوط به آیتم مورد نظر خود در پاسخ HTTP را همانند شکل زیر تعریف نمایید.
با پیکربندی صحیح این بخش، یک بخش درجدول نتایج اضافه میشود که نشان دهنده نام کاربران برنامه میباشد.