دسته بندی
Authentication and Session Management
Vulnerabilities
باگ Broken Authentication and Session Management یک نوع باگ امنیتی است که زمانی رخ میدهد که مکانیزمهای احراز هویت و مدیریت نشستها در برنامهها و وبسایتها به درستی پیادهسازی نشدهاند. این باگ باعث میشود که حملهکننده بتواند بدون نیاز به نام کاربری و رمزعبور یا با بهرهگیری از آسیبپذیریهای موجود در احراز هویت و نشستها، به حسابها و محتواهای کاربران دسترسی پیدا کند.مثال:
فرض کنید یک وبسایت دارای سیستم احراز هویت است که کاربران باید با نام کاربری و رمزعبور وارد شوند. برنامه به طور نادرستی رمزعبورها را به صورت رمزنگارینشده در دیتابیس ذخیره میکند.
همچنین، وبسایت از یک مکانیزم نشستها برای نگهداری حالت ورود کاربران استفاده میکند و توکنهای نشست را در کوکیهای قابل خواندن ارسال میکند.
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
$hashed_password = md5($password);
// Authenticate user with username and password
}
session_start();
if (isset($_SESSION['user_id'])) {
// The user is logged in and has access to the content
}
حملهکننده میتواند با استفاده از آسیبپذیریهای احراز هویت و مدیریت نشستها، به صورت زیر بدون نیاز به نام کاربری و رمزعبور به حساب کاربری دسترسی پیدا کند:1- حملهکننده میتواند مستقیماً رمزعبورهای رمزنگارینشده را از دیتابیس یا فایلها به دست بیاورد و به حسابهای کاربری دسترسی پیدا کند.
2- حملهکننده میتواند یک شناسه نشست را به کاربر تزریق کند و درخواست اجرای نشست فرضی کند، یا برعکس از نشست فرضی که خود ایجاد کرده استفاده کند.
روش های جلوگیری:
1- رمزعبورها را با الگوریتمهای رمزنگاری قوی (مانند
bcrypt یا Argon2) رمزنگاری کنید.2- از کتابخانهها و مکانیزمهای احراز هویت آماده استفاده کنید تا خطاهای احتمالی در احراز هویت کاربران حداقل شود.
3- اطمینان حاصل کنید که ورودیهای کاربران به طور دقیق اعتبارسنجی و فیلترسازی شدهاند تا از تزریقها و حملات احتمالی جلوگیری شود.
4- به جای استفاده از توکنهای نشست قابل خواندن از توکنهای امنیتی استفاده کنید که مقدار آنها به صورت اتصالی و غیرقابل پیشبینی تولید شود.
5- همواره برنامهها و کتابخانهها را بهروزرسانی کنید تا آسیبپذیریهای احتمالی در احراز هویت و مدیریت نشستها برطرف شود.
.