امیرحسین تنگسیری نژاد
مهندس و مدرس شبکه و امنیت سایبری و مدیر کل جزیره هک و امنیت اطلاعات توسینسو

بررسی آسیب پذیری IDOR

فرایند Session Management یا مدیریت و بررسی جلسه به دو بخش Authentication و Authorization تقسیم بندی می شود که به شرح زیر می باشند:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. بررسی فرایند مدیریت یک Session ایجاد شده یا همان Session Management
  2. Authentication: در این قسمت شما می بایست تایید کنید که همان فردی هستند که ادعا می کنید. برای مثال گوشی خود دارای یک رمز Pin می باشد، شما وقتی صفحه گوشی را روشن می‌کنید درصورتی توانایی استفاده از گوشی را دارید که رمز Pin را به درستی وارد کنید و تایید کنید همان فردی که ادعا می‌کنید هستید.
  3. Authorization: فرض کنید شما وارد یک کافی‌نت می شوید و قرار است ایمیل های خود را Check کنید. وقتی پشت یکی از سیستم های کافی‌نت میشینید و یا یک User خاص که به شما می‌دهند لاگین می‌کنید سطح دسترسی شما بسیار پایین می‌باشد فرض کنید که سطح دسترسی که برای User که به شما داده‌اند درحد دسترسی به اینترنت و اجرای مرورگر می باشد ولی یک User دیگر درهمین سیستم می باشد که دارای سطح دسترسی کامل تر و بیشتری می باشد و اگر با آن لاگین کنید سطح دسترسی که برای شما تعیین می‌شود درحد Administrator سیستم می‌باشد برای مثال.
  4. بررسی آسیب پذیری IDOR
    1. انواع آسیب پذیری IDOR عبارتند از
  5. تست آسیب پذیر بودن وب سایت به IDOR
    1. ضبط تمامی Request ها
    2. نحوه کشف نقاط تزریق به منظور به‌کارگیری IDOR
    3. ابزار های تست آسیب پذیری IDOR

بررسی فرایند مدیریت یک Session ایجاد شده یا همان Session Management

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

انواع آسیب پذیری IDOR عبارتند از

  • BLIND IDOR
  • CRITICAL IDOR

تست آسیب پذیر بودن وب سایت به IDOR

برای تست آسیب پذیر بودن وب سایت به این آسیب پذیری ابتدا می بایست از یک Http Proxy به منظور ضبط تمامی Request/Response های کلاینت و سرور استفاده کنید که ما از Burp Suite استفاده می‌کنیم. در Burp Suite قسمت Proxy ویژگی جالبی وجود دارد که تمامی Traffic های ردوبدل بین سرور و کلاینت را ضبط می کند همچنین از ویژگی Burp Suite Scope به منظور تست سری وب سایت نیز می‌توانید استفاده کنید با کلیک راست بر روی Domain مد نظر توانایی انتقال اون به یک‌ Scope را پیدا خواهید کرد

بررسی آسیب پذیری IDOR

همچنین درون Scope امکان تقییر پارامتر های مختلف درون آن‌را پیدا خواهید کرد

بررسی آسیب پذیری IDOR

و همچنین می‌بایست فیلتر زیر را با انتخاب گزینه "Show only in-scope items" انجام داید

بررسی آسیب پذیری IDOR

ضبط تمامی 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

نویسنده: امیرحسین تنگسیری نژاد


امیرحسین تنگسیری نژاد
امیرحسین تنگسیری نژاد

مهندس و مدرس شبکه و امنیت سایبری و مدیر کل جزیره هک و امنیت اطلاعات توسینسو

متخصص امنیت اطلاعات و کارشناس شکار تهدیدات بانک ملی ایران ، دارای مدارک مختلف از Splunk و AWS و Fortinet و Huawei حوزه اصلی فعالیت بنده در زمینه شبکه مباحث R&S و Service Provider می‌باشد و در زمینه امنیت نیز در موقعیت های مختلفی مانند PenTest و SoC فعالیت داشته و دارم. سابقه همکاری با بعضی سازمان های در قالب پروژه و... را داشته ام الان به عنوان تحلیلگر امنیت سایبری در زیرساخت بانک ملی مشغول به کار هستم. لینکداین: https://www.linkedin.com/in/amirhoseintangsirinezhad/

نظرات