کنترل دسترسی شکسته(BAC)
آسیبپذیری که به کاربران اجازه میدهد به منابع یا عملیاتی دسترسی پیدا کنند که نباید به آنها دسترسی داشته باشند.
کنترل دسترسی شکسته چیه؟
خلاصه در یه جمله: وقتی کاربر عادی بتونه کارهای ادمین رو انجام بده، یعنی کنترل دسترسی شکسته!
فرض کن تو یه ساختمانی، هر کس یه کارت دسترسی داره. کارت تو فقط در اتاق خودت رو باز میکنه. ولی یه باگ هست و کارت تو در اتاق مدیر رو هم باز میکنه! این یعنی کنترل دسترسی شکسته .
انواع کنترل دسترسی شکسته:
Vertical Privilege Escalation: کاربر عادی دسترسی ادمین میگیره. مثلاً با تغییر یه عدد تو URL از user_id=100 به user_id=1 میشی ادمین!
Horizontal Privilege Escalation: دسترسی به دادههای کاربر دیگه. مثلاً تو اکانت خودتی، ولی با تغییر ID میتونی پروفایل بقیه رو ببینی.
Directory Traversal: دسترسی به فایلهایی که نباید. مثلاً به جای file=report.pdf میزنی file=../../etc/passwd.
CORS Misconfiguration: سایت تو به همه دامنهها اجازه میده درخواست بفرستن. مهاجم از این سوءاستفاده میکنه.
مثال واقعی:
فرض کن یه سایت فروشگاهی داری. URL پروفایل کاربر اینه:
1https://shop.com/profile?user_id=123
کاربر میتونه بزنه user_id=1 و پروفایل ادمین رو ببینه! یا حتی:
1https://shop.com/admin/delete_user?id=5
و کاربر عادی بتونه کاربرای دیگه رو حذف کنه! این یعنی کنترل دسترسی شکسته.
چرا برای امنیت مهمه؟
چون شماره ۱ OWASP Top 10 2021 هست! بیشترین آسیب رو این میزنه. مهاجمان راحت میتونن به دادههای حساس دسترسی پیدا کنن، ادمین بشن، یا کل سیستم رو بردارن.