بررسی فرایند مدیریت یک Session ایجاد شده یا همان Session Management
فرایند Session Management یا مدیریت و بررسی جلسه به دو بخش Authentication و Authorization تقسیم بندی می شود که به شرح زیر می باشند:
Authentication: در این قسمت شما می بایست تایید کنید که همان فردی هستند که ادعا می کنید. برای مثال گوشی خود دارای یک رمز Pin می باشد، شما وقتی صفحه گوشی را روشن میکنید درصورتی توانایی استفاده از گوشی را دارید که رمز Pin را به درستی وارد کنید و تایید کنید همان فردی که ادعا میکنید هستید.
Authorization: فرض کنید شما وارد یک کافینت می شوید و قرار است ایمیل های خود را Check کنید. وقتی پشت یکی از سیستم های کافینت میشینید و یا یک User خاص که به شما میدهند لاگین میکنید سطح دسترسی شما بسیار پایین میباشد فرض کنید که سطح دسترسی که برای User که به شما دادهاند درحد دسترسی به اینترنت و اجرای مرورگر می باشد ولی یک User دیگر درهمین سیستم می باشد که دارای سطح دسترسی کامل تر و بیشتری می باشد و اگر با آن لاگین کنید سطح دسترسی که برای شما تعیین میشود درحد Administrator سیستم میباشد برای مثال.
بررسی آسیب پذیری IDOR
این آسیب پذیری به نحوی میباشد که برای مثال شما در یک وب سایت دارای یک User با سطح دسترسی متوسط هستید. اگر وب سایت به آسیب پذیری IDOR آلوده باشد شما توانایی دسترسی به User های دیگر با سطح دسترسی بالاتر و حتی Admin را پیدا خواهید کرد. متغیر و یا Variable های زیادی درون پروتکل Http وجود دارد که گاها آنها در Header و Cookie های این پروتکل یافت می شوند این متغیر ها عبارتند از "PID", "UID" و "ID" فرد مهاجم با تقییر پارامتر های بالا توانایی حذف/دسترسی و خیلی مباحث دیگر را به منابع User های دیگر و یا منابع حساس وب سایت را پیدا خواهد کرد
این آسیب پذیری فقد مختص دسترسی به User های دیگر نمیباشد. فرض کنید یک عکس درون وب سایت وجود دارد که هرکسی توانایی دسترسی به آن را ندارید درصورت پیدا کردن دسترسی به آن عکس توسط فرد مهاجم، وب سایت به آسیب پذیری IDOR الوده می باشد.
نکته: این آسیب پذیری همانند آسیب پذیری های XSS و CSRF به راحتی کشف نمیشود و نیاز به درک بالایی از عملکرد وب سایت و استعداد در کشف آسیب پذیری از سمت فرد مهاجم دارد
آسیب پذیری IDOR در شکل زیر بین سرور و کلاینت نمایش داده شده است(تصویر 1-1)
انواع آسیب پذیری IDOR عبارتند از
- BLIND IDOR
- CRITICAL IDOR
تست آسیب پذیر بودن وب سایت به IDOR
برای تست آسیب پذیر بودن وب سایت به این آسیب پذیری ابتدا می بایست از یک Http Proxy به منظور ضبط تمامی Request/Response های کلاینت و سرور استفاده کنید که ما از Burp Suite استفاده میکنیم. در Burp Suite قسمت Proxy ویژگی جالبی وجود دارد که تمامی Traffic های ردوبدل بین سرور و کلاینت را ضبط می کند همچنین از ویژگی Burp Suite Scope به منظور تست سری وب سایت نیز میتوانید استفاده کنید با کلیک راست بر روی Domain مد نظر توانایی انتقال اون به یک Scope را پیدا خواهید کرد
همچنین درون Scope امکان تقییر پارامتر های مختلف درون آنرا پیدا خواهید کرد
و همچنین میبایست فیلتر زیر را با انتخاب گزینه "Show only in-scope items" انجام داید
ضبط تمامی Request ها
شما میبایست تمامی Request های ردوبدل شده میان وب سایت و کلاینت را کاملا ضبط و یا Capture کنید، به این منظور شما توانایی Edit سازی Request ویا ساخت Request های مشابه و ارسال آنها را پیدا خواهید کرد.
به طور مثال یک برنامه فروشگاهی در پرداختی های خرید شماره کارت اعتباری شمارا دریافت میکند در مرحله اول با تست Request ها آسیب پذیری IDOR را کشف نمیکنیم ولی در دفعه دوم خرید کارت اعتباری در صفحه برای انتخاب به نمایش درمیآید اینجاست که وب سایت به آسیب پذیری IDOR آلوده می باشد. پس از انتخاب کارت اعتباری برنامه آن کارت را در یک Request به سمت سرور ارسال میکند تا اطلاعات آن را دریافت کند در این جا می باشد که ما توانایی دسترسی به دیگر کارت های درون یک وب سایت را پیدا خواهیم کرد.
یک مثال دیگر از این آسیب پذیری:
فرض کنید یک برنامه چت وجود دارد که در آن User A یک پیغام به User B ارسال کرده است به این صورت /Message/8012/ در اینجا User A قصد دارد به پیغام خود با Message ID 8012 دسترسی پیدا کند پس یک Request به شکل زیر ایجاد میکند و درصورت گرفتن جواب وب سایت به آسیب پذیری IDOR آلوده می باشد.
POST /messages/8012/invite HTTP/1.1 Host: example.com User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0 Firefox/52.0 Accept: */* X-Requested-With: XMLHttpRequest Cookie: my_cookiesConnection: closeuser=testaccount2
درصورت پردازش Request بالا کاربر توانایی دسترسی به کلیه پیغام های افراد را پیدا خواهد کرد
نحوه کشف نقاط تزریق به منظور بهکارگیری IDOR
- روش های مختلفی برای کشف نقاط تزریق منظور بهکارگیری این آسیب پذیری وجود دارد که عبارتند از:
- ضبط و یا Capture تمامی Request/Response و بررسی و تست آنها
- انجام Fuzzing
- بررسی Source-Code های Html و JavaScript وب
- بررسی شکل های قدیمی وب سایت از طریق archive.org
ابزار های تست آسیب پذیری IDOR
درون Burp Suite افزونه(plugins)هایی وجود دارد که در این زمینه فعالیت میکنند عبارتند از:
- Authz
- AuthMatrix
- Authorize
نویسنده: امیرحسین تنگسیری نژاد
نظرات کاربران (0)