Перевод: Фиксация сеанса

Перевод: Фиксация сеанса

@Ent_TranslateIB

Привет, друзья!

Это моя 18-я статья о тестировании на проникновение в безопасность веб-приложений. В этой статье я расскажу об атаке фиксации сеанса. В своей последней статье я рассказывал об атаке подмены содержимого, надеюсь, всем понравилось. Если вы еще не читали, пожалуйста, прочтите дальше.

https://medium.com/@ms-official5878

Что такое фиксация сеанса?

Атака с фиксацией сеанса заключается в эксплуатации механизма управления веб-сеансом, который обычно используется для управления токеном сеанса. Поскольку HTTP-коммуникация использует множество различных TCP-соединений, веб-серверу необходим метод распознавания соединений каждого пользователя. Наиболее полезный метод зависит от токена, который веб-сервер отправляет браузеру клиента после успешной аутентификации клиента. Токен сессии обычно состоит из строки переменных with и может быть использован различными способами, например, в URL, в заголовке http-запроса в качестве cookie, в других частях заголовка http-запроса или в теле http-запроса.

Приходит на ум очевидный вопрос: "В чем разница между фиксацией сеанса и перехватом сеанса?". Запутались?

Перехват сеанса - это просто кража существующего, действительного куки сеанса. Чаще всего это происходит путем перехвата сетевого трафика (MITM-атака), межсайтового скриптинга или межсайтовой трассировки, но также и любыми другими способами, которые могут привести к утечке идентификатора сессии.

Фиксация сеанса похожа, но перевернута - в браузер жертвы подбрасывается заранее определенный файл cookie сеанса. Таким образом, после того как жертва войдет на сайт, она будет использовать тот же сеансовый cookie, который уже известен злоумышленнику, и, таким образом, принадлежащий злоумышленнику cookie теперь аутентифицирован и может быть использован.

Конечно, это требует от злоумышленника временного доступа к самому браузеру жертвы, но принцип очень прост - нет необходимости красть данные, если они изначально находятся под вашим контролем.

Как проверить фиксацию сеанса?

Идентификатор сессии одинаковый до и после входа в систему.[Фиксация сеанса] [Требуется физический доступ к браузеру жертвы, чтобы установить ранее известный действительный идентификатор сессии и использовать его в дальнейшем для посещения или изменения веб-контента жертвы].

Шаг 1] зайдите на страницу входа в систему. Зайдите в расширение редактора cookie, которое уже установлено в браузере, и отредактируйте cookie. Скопируйте идентификатор сессии.

Шаг 2] Войдите в приложение. Снова зайдите в редактор cookie. Скопируйте куки.

Шаг 3] Если оба куки одинаковы, сообщите о проблеме.

Пример эксплуатации фиксации сеанса:

Чтобы лучше понять это, я хотел бы добавить один пример, который используется в реальном опыте тестирования. Пожалуйста, следуйте шаг за шагом POC для эксплуатации.

Примечание:

Браузер Chrome, используемый атакующим

Браузер Firefox, используемый жертвой

1. Злоумышленник просматривает приложение в chrome и записывает идентификатор сессии без входа в систему от администратора, просто запросив любую страницу в приложении и перехватив этот запрос. Перехваченный запрос будет иметь идентификатор сессии "PHPSESSID".

Идентификатор Сеанса Перед Входом В Систему

2. Теперь задача состоит в том, чтобы зафиксировать в браузере жертвы идентификатор сессии (PHPSESSID), отмеченный на предыдущем шаге. Это можно сделать, используя XSS-уязвимость или заставив жертву кликнуть на URL, содержащий идентификатор сеанса в GET-параметре. Здесь мы зафиксировали сессию в браузере жертвы, которым является firefox, установив в его браузере идентификатор сессии, отмеченный ранее.

Фиксация известного идентификатора сессии злоумышленника в веб-браузере жертвы

3. Теперь пусть жертва войдет в приложение, имея идентификатор сессии злоумышленника. Обратите внимание, что приложение не устанавливает новый идентификатор сессии при входе пользователя в приложение, а идентификатор сессии (идентификатор злоумышленника) остается неизменным даже после входа.

Жертва, входящая В Приложение
Жертва Успешно Вошла В Систему

4. Теперь в браузере атакующего нажмите кнопку refresh. Заметно, что доступ к панели администратора будет получен без ввода учетных данных.

Злоумышленник получил сеанс жертвы, поскольку идентификатор сеанса остается неизменным после входа жертвы в систему

5. Злоумышленник может получить доступ к функциям, как показано ниже,

Функциональность, доступная Злоумышленнику

Последствия:

После успешной атаки учетная запись пользователя может быть полностью скомпрометирована, и злоумышленник сможет выполнять все операции, которые может выполнять пользователь.

Рекомендации:

Ниже приведены рекомендации по противодействию атаке фиксации сеанса:

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

Второй фокус на всей сессии. Создайте новую сессию, скопируйте все данные сессии из старой сессии в новую, уничтожьте старую сессию, передайте токен, связанный с новой сессией, клиенту.

Ссылки:

OWASP — Фиксация сеанса

Фиксация сеанса

Пожалуйста, ставьте лайк и следите за обновлениями!

Спасибо!

Оригинал статьи - здесь.
Поддержите автора хлопками на Medium.


Перевод статьи был выполнен проектом перевод энтузиаста:

  • 📚 @Ent_TranslateIB - Телеграмм канал с тематикой информационной безопасности
  • 🔥 @Ent_Translate - Инстаграм проекта

Report Page