
در این Write up مربوط به آسیبپذیری منطقی، به شناسایی آسیب پذیری منطقی در یکی از برنامه های خصوصی Integriti.com می پردازیم.
با توجه به خصوصی بودن برنامه، در این مستند از عبارت example.com به عنوان نام سایت استفاده می شود.
مسئله اول :Bypassing input validation via ‘null’ value
برنامه هدف یک پورتال مشتری توسعه یافته برگرفته از Hotels High می باشد. در این پورتال مشتری می تواند بازدیدهای خود را رزرو نماید. این برنامه محیط staging را هدف قرار می دهد، جایی که داده ها می توانند بدون خطر، ایجاد و اصلاح شوند.
به طور معمول، کد ثبت نام مشتری در اختیار مشتریان قرار می گیرد که با آن می توانند رزرو را انجام دهند.
تست نفوذگر در فرآیند ثبت نام متوجه می شود که امکان ایجاد رزرو بدون شماره تلفن (phonNumber)، ایمیل و سایر پارامترها، وجود ندارد. وی یک رفتار مشکوک در یک EndPoint را مشاهده می کند که به کاربر اجازه می دهد تا یک رزرو را با مقادیر null انجام دهد.

در صورتی که کاربر درخواست ارسال شده به مسیر /API/v1/rest/customer/booking/create/ را به بخش Repeater در Burp Suite ارسال نموده و مقادیر مربوط به email، gdpConfirmed و phoneNumber را null تبدیل کند، می تواند اعتبارسنجی موجود را Bypass نموده و رزرو خود را ایجاد نماید:

تست نفوذگر، این آسیب پذیری را به تیم Integriti گزارش نموده و پس از تایید آن ها، پاداش در نظر گرفته شده برای وی اعمال می شود.
مسئله 2: Information disclosure via an empty array [ ]
تست نفوذگر با یک اکانت با دسترسی پایین تست خود را انجام می دهد. وی در حین تست یک Endpoint را شناسایی می کند که اجازه دسترسی به اطلاعات رزرو را می دهد. این Endpoint به صورت زیر است:
event/api/v1/bookings?page=0&perpage=25&pagesize=25&sort=%2BbookingDate&sortby=bookingDate&ascending=true&bookingdatefrom=DATE&visitdatefrom=DATE
هنگامی که کاربر یک درخواست GET با Endpoint بالا ارسال می کند، در پاسخ، چیزی دریافت نخواهد کرد(null).

اما زمانی که کاربر در هنگام ارسال درخواست GET، مقدار آرایه ای [] را برای پارامتر bookingdatefrom وارد می نماید، می تواند به اطلاعات رزرو دسترسی داشته باشد:

تست نفوذگر به سرعت، این مشکل را نیز گزارش نموده و پس از تایید تیم Integriti، پاداش مد نظر برای وی منظور می گردد.
منبع:
dewcode.medium.com/how-did-i-earn-by-breaking-the-back-end-logic-of-the-server-fd94882cbdf6