Session Hijacking (Перехват сессии)

⌘K

Session Hijacking (Перехват сессии)

Session Hijacking — это метод атаки, при котором злоумышленник получает контроль над активной пользовательской сессией, не зная логин и пароль. Атака основывается на перехвате идентификатора сессии (Session ID), который используется приложением для идентификации пользователя после аутентификации.

Сессия в веб-приложениях — это временное состояние, хранящее информацию о пользователе после входа. Она идентифицируется с помощью уникального токена, который передаётся вместе с каждым запросом, чаще всего через HTTP cookie, URL-параметры или заголовки.


Как происходит перехват

Злоумышленник получает Session ID одним из способов:

  • Через открытую Wi-Fi-сеть, анализируя незашифрованный трафик;
  • С помощью XSS-атаки, если сайт позволяет внедрять сторонний JavaScript;
  • Через DNS-спуфинг или подмену IP-маршрутов;
  • При отсутствии HTTPS, что даёт возможность прослушивать HTTP-запросы;
  • Путём кражи токена через вредоносные расширения, iframe или промежуточные прокси.

После получения токена атакующий использует его в своём браузере или HTTP-клиенте и получает доступ к чужой сессии как полноправный пользователь.


Почему это опасно

  • Нет необходимости в пароле — только действующий Session ID;
  • Захват возможен до выхода пользователя (т.е. пока сессия активна);
  • Доступ к любым действиям в рамках сессии — личный кабинет, переписка, оплата;
  • Трудно обнаружить — в логах атака выглядит как обычный запрос пользователя.

Примеры угроз

  • Пользователь авторизуется на сайте через незащищённое соединение в кафе. Нападающий с помощью сниффера перехватывает session cookie и использует его для входа в аккаунт.
  • Сайт уязвим к XSS, и вредоносный скрипт считывает токен из
    document.cookie
    , отправляя его на сервер атакующего.
  • В API токен передаётся в URL (
    GET /api?token=abc123
    ), и он попадает в логи прокси или браузера.

Как защититься

  • Использовать HTTPS на всех этапах — включая login, редиректы, API-запросы;
  • Устанавливать флаг HttpOnly на cookie, чтобы исключить доступ из JavaScript;
  • Активировать флаг Secure для передачи cookie только по HTTPS;
  • Привязывать сессии к IP-адресу или user-agent (с осторожностью, учитывая NAT и мобильные сети);
  • Применять временные токены и короткий TTL на сессии;
  • Реализовать механизм ручного выхода и автоистечения;
  • Использовать дополнительную аутентификацию при критических действиях (например, при смене пароля).

Session Hijacking — это серьёзная угроза для любых веб-приложений, особенно если безопасность построена на простом токене без привязки к окружению. При правильной защите можно свести риск к минимуму, но при игнорировании базовых практик — атака остаётся незаметной и разрушительной.

VPS с перспективой

Планируете VPS на год? С кодом NEWCOM получаете больше, чем рассчитывали.

Месяц в подарок
COPIED
NEWCOM COPIED