ویرگول
ورودثبت نام
میثم بال افکن
میثم بال افکنمن خودِ خودِ باگم
میثم بال افکن
میثم بال افکن
خواندن ۲ دقیقه·۴ ماه پیش

دور زدن پلن Upgrade سایت Notion

این رایت‌آپ با همکاری من و محمدحسین صادقیان انجام شده.

کلیپ از روند اکسپلویت آسیب پذیری اِنتهای رایت‌آپ.


پارت اول

چند وقتی بود از Notion برای نوشتن برنامه‌های روزمره و مدیریت کارام استفاده میکردم، و هرموقع عضو جدیدی به تیم میومد اون رو هم به حساب کاربریم متصل میکردم.

تا اینکه آخرین عضوی که گرفتیم موقع متصل کردنش به حسابم یک پیام اومد که میگفت نیازه Upgrade کنی تا بتونی بلاک جدید (خط جدید داخل نوشن) ایجاد کنی.

اینجا یکم حالم گرفته شد که تا وقتی هزینه پرداخت نکنم برای Upgrade plan حسابم نمیتونم دیگه چیزی توش بنویسم.


پارت دوم

اون حس هکریه اصلا نمیزاشت بهشون پول پرداخت کنم، هرجور شده باید ی راهی پیدا میکردم تا کارمو بدون اینکه بهشون پولی بدم ادامه بدم.

بعد از کلی سر و کله زدن با سایتشون بلاخره یک روزنه اُمید دیدم.

آره خودشه وقتی سایتو Reload میکنم درست چند میلی ثانیه قبل اینکه کامل لود بشه میتونم بلاک(خط) جدید توی حساب کاربریم ایجاد کنم.

فقط باید خیلی سریع چند میلی ثانیه قبل لود شدن کامل سایتشون روی بلاک فعلیم کلیک کنم و پشت هم Enter بزنم.


پارت سوم (پارت جهنمی)

حالا از اینجا به بعد با یکسری از هم تیمیا صحبت کردم تا روی Notion وقت بزارن و تنها کسی که موند محمدحسین بود.

با صحبتایی که کردیم به این فکر افتاده بودیم حتما یک فایل JavaScript ای هست که داره اعتبار سنجیو انجام میده و بخاطر همین موقع لود شدنش، اون اتفاق میوفته.

پس عزممون رو جزم کردیم تا چند صد فایل جاوا اسکریپتیشو بخونیم :')
رسیدیم به 2 تا فایل که اصل اعتبار سنجی قسمت Upgrade از اون فایلا میومد.

با خودمون گفتیم خب کاری نداره موقعی که داریم با BurpSuite ریکوئست‌هاشو میگیریم به اون 2 تا فایل JS که رسید دراپشون میکنیم.

آره جواب داد =) اما خیلی زود فهمیدیم نه مشکل اون 2 تا فایل JS نیستن و بگیر نگیره داره اینکار.

حتی کدای فایل‌های JS رو override هم کردیم اما بازم نتیجه‌ای که ما میخواستیمو نمیداد، انگار یک سری JS فایل‌های دیگه بود که بعدش میومدن و بررسی میکردن باز و نصفه و نیمه می‌موند.


پارت آخر (پارت قبلی اصلا مقابل این پارت جهنم که هیچی آتیش چوب کبریته)

بلاخره بعد تست کردن کلی روش مختلف و انجام همه سناریوهایی که به ذهنمون میرسید من و محمدحسین راهشو پیدا کردیم، فهمیدیم وقتی بین ریکوئست‌ها Delay یک ثانیه‌ای میندازیم عملا دیگ سایتشون بررسی نمیکنه که حساب رو Upgrade کردیم یا نه!

عجیب بود اما واقعا علاج کار تو همین صبرِ بود(داستان لاکپشت و خرگوش)، دقیقا جواب همین بود باید یکبار سایتو Reload میکردیم و ایجاد تاخیر 1 ثانیه‌ای بین هر ریکوئست باعث میشد بعدش کل قابلیت‌های سایتشون برامون باز بشه و دیگه پیام Upgrade plan نمیومد تا زمانی که سایتشون می‌بستیم.


برای دیدن کلیپ اکسپلویت آسیب پذیری روی لینک کلیک کنید.

آسیب پذیریباگ بانتیهک و امنیتهکربرنامه نویسی
۴
۰
میثم بال افکن
میثم بال افکن
من خودِ خودِ باگم
شاید از این پست‌ها خوشتان بیاید