درود دوستان عزیز
در خیلی مواقع سایتهای مختلف برای ورود به غیر از یوزر و پسورد حالت OTP یا One Time Password قرار دادند بصورتی که پس از لاگین موفق از شما درخواست کد میشود که این کد میتواند به ایمیل یا تلفن همراه شخص مورد نظر ارسال شود .
حالا اگر توسعه گر برنامه نویسی خیلی پیچیده ای برای حالت 2step یا otp در نظر نگرفته باشد راه حلی برای دور زدن وجود دارد این روش در صورتی موفقیت آمیز است که بتوانیم کد چند رقمی OTP ارسالی به گوشی یا ایمیل را بروت فورس کنیم .
اگرچه این سایت دارای عملکردهای زیادی نیست، اولین چیزی که همیشه جستجو می کنم آسیب پذیری های “Login Bypass” است. بنابراین من با Reset-Password Functionality شروع کردم، جایی که درخواست به این شکل است
و پاسخ این است:
همه چیز خوب خواهد بود تا زمانی که پارامتر "status" را تغییر دهیم: "fail". حتی با تغییر پارامتر، OTP را به شماره موبایل ثبت شده ارسال میکند، اما به ما اجازه میدهد تا OTP را [No-Rate-Limit Vulnerability] BruteForce کنیم.
"خطای منطقی منجر به محدودیت بدون rate می شود"
چگونه OTP را دور بزنیم :
پس از تغییر Value، کاربر یک OTP [در واقع به کاربر] به شماره موبایل خود دریافت میکند. بنابراین من مقداری OTP تصادفی را وارد کردم تا بتوانم OTP صحیح را از طریق brute-force شناسایی کنم.
ممکن است فکر کنید که می توانید مقدار "status"را به "success" برای دور زدن OTP تغییر دهید ، اما این کار انجام پذیر نیست زیرا اعتبارسنجی و فیلتر هدر ها در سمت سرور انجام می شود. اکنون تنها گزینه ای که داریم BruteForce برای OTP است و این کار را انجام دادم. نتیجه را میبینیم :
OTP صحیح به شما طول 575 می دهد، در حالی که همه OTP های دیگر طول 574 را به شما می دهند. از اون تغییر های دلچسب
پس از دریافت OTP، من بلافاصله مقدار را تغییر دادم و OTP صحیح را در درخواست قبلی خود وارد کردم.
اکنون شما هنوز مقدار status را بصورت Error دریافت میکنید و این به دلیل بررسی از سمت سرور ساید و کلاینت ساید میباشد .
در ادامه با ما باشید .
در خیلی مواقع سایتهای مختلف برای ورود به غیر از یوزر و پسورد حالت OTP یا One Time Password قرار دادند بصورتی که پس از لاگین موفق از شما درخواست کد میشود که این کد میتواند به ایمیل یا تلفن همراه شخص مورد نظر ارسال شود .
حالا اگر توسعه گر برنامه نویسی خیلی پیچیده ای برای حالت 2step یا otp در نظر نگرفته باشد راه حلی برای دور زدن وجود دارد این روش در صورتی موفقیت آمیز است که بتوانیم کد چند رقمی OTP ارسالی به گوشی یا ایمیل را بروت فورس کنیم .
اگرچه این سایت دارای عملکردهای زیادی نیست، اولین چیزی که همیشه جستجو می کنم آسیب پذیری های “Login Bypass” است. بنابراین من با Reset-Password Functionality شروع کردم، جایی که درخواست به این شکل است
و پاسخ این است:
همه چیز خوب خواهد بود تا زمانی که پارامتر "status" را تغییر دهیم: "fail". حتی با تغییر پارامتر، OTP را به شماره موبایل ثبت شده ارسال میکند، اما به ما اجازه میدهد تا OTP را [No-Rate-Limit Vulnerability] BruteForce کنیم.
"خطای منطقی منجر به محدودیت بدون rate می شود"
چگونه OTP را دور بزنیم :
پس از تغییر Value، کاربر یک OTP [در واقع به کاربر] به شماره موبایل خود دریافت میکند. بنابراین من مقداری OTP تصادفی را وارد کردم تا بتوانم OTP صحیح را از طریق brute-force شناسایی کنم.
ممکن است فکر کنید که می توانید مقدار "status"را به "success" برای دور زدن OTP تغییر دهید ، اما این کار انجام پذیر نیست زیرا اعتبارسنجی و فیلتر هدر ها در سمت سرور انجام می شود. اکنون تنها گزینه ای که داریم BruteForce برای OTP است و این کار را انجام دادم. نتیجه را میبینیم :
OTP صحیح به شما طول 575 می دهد، در حالی که همه OTP های دیگر طول 574 را به شما می دهند. از اون تغییر های دلچسب
پس از دریافت OTP، من بلافاصله مقدار را تغییر دادم و OTP صحیح را در درخواست قبلی خود وارد کردم.
اکنون شما هنوز مقدار status را بصورت Error دریافت میکنید و این به دلیل بررسی از سمت سرور ساید و کلاینت ساید میباشد .
در ادامه با ما باشید .
نظر