سناریو این پست به تایتل پست قبلی گره خورده اگه پست قبلیو خونده باشید میدونید که ما اینجا یه پکت داریم که یه درخواست میزنه به این ای پی آی
api/authentication/sign-in
جدای از این که خیلی تست روی پارامتر otp این پکت زدم که بعضی از پیلود های json پارس نمیشد و پکت رو خراب میکرد پارامتری که من باهاش کار دارم یه پارامتره که من بهش ورودی دادم
من یه لاگین تایپ دارم که از بین دو تا پروایدر انتخابش کردم sms و email
{
"LoginType": "email",
"password": "mypass",
"user": "dagen@gmail.com",
"session": "randommmmmmmmmmmmmmmmmm",
"locale": "en_us"
}همونطور که میبینید
من توی ریکوست قبلی ایمیل رو انتخاب کردم و یه ریکوست قبل ترش یه ایمیل خودم و شماره موبایلمو داده بودم به سایت
سوالی که مغز منو میخورد این بود چی میشه اگه لاگین تایپ رو توی همین ریکوست فعلی نفرستم؟
یا خالی بفرستمش و برم مرحله بعدی ؟
یکم فکر کنید , سایت چه واکنشی نشون میده ؟
یه سری فرض ها با خودمون میکنیم . یعنی میشه اگه من اینو نفرستم به کل 2fa بره کنار و من وارد اکانت بشم ؟
حالا وقته عمل چن تا تست محدود توی ذهن من باید اجرایی بشه بیاین بریم رو ریپیتر
یه بار میام پارامتر LoginType رو آش با جاش ور میدارم چون ممکنه اون سمت سرور این نفرستادنه به سرور یه null برگردونه در خواست رو send میکنم —> fail شد چرا ؟
چون منو ریدارکت میکرد همون ریکسوتی که که میگفت پرووایدر انتخاب کن پس این تست بدرد من نخورد
تست بعدی
مقدار ایمیل رو بر میدارم هیچی میفرستم به این حالت :
"LoginType": ""نوبت اینه send رو بزنم وقتی ریسپانس رو دیدم یه successful داد ولی تو خالی بود و پیش فرض کد تایید رو به شمارم اس ام اس میکرد :)
این هم fail شد و نتیجه ای برام نداشت .
میرسیم به تست اخر این همون تست طلاییس که میخوامش و میشه مغز اسیپ پذیری که اشتباه یه برنامه نویس رو اشکار میکنه و پستو باهاش تموم میکنم
اگه این مقدارا سمت فرانتاند تعریف شدن پیش خودم اومدم فکر کردم چرا نرم این پارامتر(LoginType) رو توی dom سرچ کنم ؟
سرچ کردم همچین چیزی جلوی چشای منه —>
export enum LOGIN_TYPE {
EMAIL : "email"
PHONE : "phone"
NONE : "none"
}میشه به من بگی اون none چیه ؟ مگه ما داشتیم همچین چیزی ؟ چه تستی کنم ؟
یه راه برای فهمیدنش وجود داره میام توی پارمتر لاگین تایپ میزارمش :
"LoginType": "none"
تمام . باگ دوم برای منه 2fa رفت کنار و من کافی بود هر ایمیلی که دوست دارم رو بدون تایید برم توش
حدس و احتمال پشت صحنه
سمت سرور این مقدار یه مقدار معتبره , اشتباه فاجعه بار یه برنامه نویس که احتمالا در حال تست این سایت بوده یا یادش رفته بوده
نمیتونم با قطعیت بگم دلیلش چیه ولی احتمال میدم ممکنه برنامه نویس سایت برای لاگین کردنش توی محیط تست خودشو به زحمت نمیندازه تا بره ایمیل و اس ام اسش رو چک کنه و میاد یه پروایدر تستی برام خودش میسازه
تا سریع لاگین کنه . یه همچین چیزی احتمال داره
و ما به عنوان اتکر اومدیم این فرصت رو به نفع خودمون تغیر دادیم و یه گزارش ولید رو به ثبت رسوندیم
امیدوارم نهایت درک رو از این سناریو گرفته باشید 🌷
پر قدرت بریم سر وقت باگای بیشتر ؟
@Dagen_security