رایتاپ Information Disclosure شماره 2
سلام.من بهروز منصوری هستم و با رایتاپ Information Disclosure شماره 2 در خدمتتون هستم.
برنامه ای که این بار انتخاب کردم یکی از unicorn های هند هستش.
این شرکت یک برنامه باگ بانتی در Hackerone دارد.
من از این لحظه سایت را redacted.com می نامم.
این شرکت یک پلتفرم فناوری است که مشتریان از طریق آن انواع مختلفی از خدمات را رزرو می کنند.
www.redacted.com و api.redacted.com در محدوده مسابقه هستند.
شروع کار
طبق معمول، من شروع به کاوش برنامه و گرفتن درخواست ها در برنامه Burp بودم.
redacted.com دامنه اصلی است اما تمام مسیرهای ترافیکی از طریق api.redacted.com است.
من قبلاً از خدمات شرکت استفاده کردم، بنابراین رزروهایی در حساب خودم دارم.
ابتدا شروع به بررسی تمام درخواستها و پاسخها از api.redacted.com کردم.
یک endpoint نظرم را به خودش جلب کرد.
https://api.redacted.com/api/v2/help-recovery/gethelp/getHelpFlow
درخواست به صورت POST و با body زیر برای بررسی خلاصه پرداخت های سرویس های رزرو شده ارسال می شود.
{"user_type":"customer","flow_type":"request","request_id":"XXXXX","group_key":"view_payment_summary_group","mode":"published"}
در حین بررسی پاسخ endpoint متوجه شدم که اطلاعات تماس ارائهدهنده خدمات در key masked_number به صورت متن ساده در معرض دید قرار میگیرد.
در تصویر بالا میبینید که به request_id (که شناسه رزرو است) نیاز دارید تا اطلاعات تماس ارائهدهنده خدمات را در اینجا واکشی کنید.
بنابراین، برای افزایش تأثیر این آسیبپذیری، ۳ تا ۵ رزرو جدید برای روز بعد انجام دادم.
ارائهدهنده خدمات ظرف 30 دقیقه پس از ایجاد رزرو اختصاص داده میشود.
من request_id جدید را برای بیرون کشیدن اطلاعات تماس ارائهدهنده خدمات وارد کردم و سپس رزرو را لغو کردم.
به طوری که من مجبور به پرداخت هزینه انصراف نباشم.
شرایط لغو: لغو رایگان تا 3 ساعت قبل از انجام کار هزینه ای ندارد.
من این موضوع را از طریق Hackerone به تیم امنیتی گزارش کردم.
این شرکت مشکل را برطرف کرد و 750 دلار جایزه پرداخت کرد.
یکی از بخش هایی که همیشه باید برای پیدا کردن آسیب پذیری بهش توجه کنیم، api ها هستند.
در دوره تست نفوذ api به صورت تخصصی در مورد این موضوع صحبت میکنیم.