فرض بگیریم ما یه فرمی داریم که وقتی ایمیل رو وارد میکنیم مثل هر لاگین معمولی دیگه ای یه otp کد یا همون کد تایید رو برای ما ارسال میکنه , حالا سم کری میگه وقتی میخوای otp کد رو وارد کنی , یه OTP اشتباه وارد کن و میبینی که مثلا 400 میگیری .
حالا برو همین ریکوست رو دوباره توی برپت کپچر کن و به جای مقدار OTP اینو قرار بده :
otp=../sms
و میبینی که دور میخوره :)
دلیل و منطقش چیه ؟
به عنوان یه هانتر چون همیشه بلک باکس تست میکنیم کار ما فرض گرفتنه فرض میکنیم : بکند یه سرور اینترنال داره مثل این :
http://internal-ip/sms/1234 — > 400 bad request
که کد تاییدی که وارد میکنی با اون اینترنال چک میشه , حالا اگه تویه مهاجم 1234 رو وارد کنی و کد اشتباه باشه از اینترنال یه 400 میاد ولی وقتی تو اینو وارد میکنی
../sms توی اینترنال این اتفاق میوفته : http://internal-ip/sms/../sms
این یه مسیر میاد عقب و چون دایرکتوری sms توی اینترنال وجود داره پس تو از طرف اینترنال یه استاتوس کد 200 میگیری و otp رو بایپس میکنی :)
ایا همیشه جوابه ؟ نه
ایا همیشه اسم دایرکتوری sms هستش نه ! باید فاز کنی و بدستش بیاری
این سناریو فقط با وقتی جوابه که بکند سرور و پیاده سازی برنامه نویس بر اساس استاتوس کد چک رو انجام میده 🤝
امیدوارم درک کافی از این سناریو داشته باشید 🌷
@Dagen_security