Сессия является наиболее важной и сложной для веб-приложений. Для веб-приложений первым принципом повышения безопасности является: не доверяйте данным от клиента. Данные должны быть проверены и отфильтрованы, прежде чем их можно будет использовать в программе, а затем сохранить на уровне данных. Однако, чтобы поддерживать состояние между различными запросами от одного и того же пользователя, клиент должен отправить серверу уникальный идентификатор идентификации (SessionID). Очевидно, что это противоречит упомянутым выше принципам безопасности, но нет другого способа. Протокол http не сохраняет состояние. У нас нет выбора. Из этого видно, что наиболее уязвимой ссылкой в веб-приложении является сеанс. Поскольку сервер аутентифицирует пользователя посредством удостоверения клиента, сеанс является ссылкой в веб-приложении, которая должна быть наиболее безопасной.
Существует множество способов атаки на основе сеанса. Большинство методов сначала захватывают или фиксируют сеанс законного пользователя, а затем выдают себя за пользователя для доступа к системе. Другими словами, злоумышленник должен как минимум получить действительный идентификатор сеанса для последующей аутентификации.
Злоумышленник может получить действительный идентификатор сеанса как минимум тремя способами:
Прогнозирование сеанса требует, чтобы злоумышленник угадал действительный идентификатор сеанса, используемый в системе (формат PHPSESSID=1234 в PHP), что аналогично взлому методом грубой силы.
В настоящее время прогнозирование сеанса маловероятно, что этот метод атаки будет успешным.
1. Целевому пользователю необходимо сначала войти на сайт.
2. После успешного входа в систему пользователь получит идентификатор сеанса, предоставленный сайтом.
3、Злоумышленник перехватывает идентификатор сеанса с помощью какого-либо метода атаки.
4. Злоумышленник может получить законный сеанс целевого пользователя, получив доступ к сайту через захваченный идентификатор сеанса.
Принципиальная схема:
Существует много типов злоумышленников.
Для PHP, хотя его внутренний механизм реализации сеанса не очень безопасен, процесс генерации идентификатора сеанса относительно безопасен. Этот случайный идентификатор сеанса часто чрезвычайно сложен и его трудно предсказать. Поэтому взлом SessionID и прогнозирование атак SessionID практически маловероятны. добиться успеха.
Большинство методов кражи идентификаторов сеансов используют уровень передачи сетевых данных для атаки и захвата, а SSL можно использовать для защиты.
атака «человек посередине»(Man-in-the-MiddleAttack,Атака MITM (называемая «атакой MITM») — это метод сетевой атаки, который косвенно завершает атаку путем кражи или взлома физических и логических каналов связи. Злоумышленник создает независимые соединения с обоими концами связи.,и обмениваться полученными данными,Заставьте оба конца связи думать, что они разговаривают друг с другом напрямую через частное соединение.,Фактически вся сессия полностью контролируется злоумышленником. Этот узел связи, контролируемый злоумышленником, представляет собой так называемого «человека посередине».
Существует две распространенные формы атаки «человек посередине»:
Принципиальная схема выглядит следующим образом:
Причины, по которым от нападения «человека посередине» трудно защититься:
закрепление сеанса(Session fixation) — метод атаки, который обманом заставляет жертву использовать идентификатор сеанса (SessionID), указанный злоумышленником.
Это самый простой способ для злоумышленника получить законный идентификатор сеанса. (Разрешить законным пользователям входить в систему, используя предустановленный злоумышленником SessionID, тем самым предотвращая создание в Интернете новых SessionID, в результате чего предустановленный злоумышленником SessionID станет легитимным мостом).
закрепление сеанса также можно рассматривать как разновидность перехвата сеанса, поскольку закрепление Основной целью сеансовой атаки также является получение легитимной сессии целевого пользователя, но закрепление Сеанс также может заставить жертву использовать действительный сеанс, установленный злоумышленником, для получения конфиденциальной информации пользователя.
Шаги атаки обычно включают в себя:
Принципиальная схема выглядит следующим образом:
Идентификатор сеанса, хранящийся в ранних браузерах, легко доступен и использует URL-адрес для передачи идентификатора сеанса.
Сначала проверьте, содержит ли передаваемый файл cookie идентификатор сеанса; если нет, затем проверьте, включен ли он в данные получения и отправки, и если да, используйте эти данные, если нет, система сгенерирует идентификатор сеанса и отправит его клиенту;
Используйте клиентский скрипт для установки файлов cookie в браузер.
<script> document.cookie="PHPSESSID=99999";</script>
Таким образом, вы можете использовать XSS для достижения своей цели.
Включите Httponly, чтобы злоумышленники не могли читать файлы cookie.
Однако в некоторых браузерах более ранних версий есть лазейки, и файлы cookie можно переписать, даже если установлен HttpOnly. Поэтому необходимо добавить другие методы проверки, такие как проверка User-Agent и проверка токена.
использоватьHTMLиз<META>тег плюсSet-Cookieсвойство。
Сервер может вернутьсяизHTMLДобавлено в документ<META>ярлык для установкиCookie
<meta http-equiv='Set-Cookie'content='PHPSESSID=23333'>
По сравнению с клиентским скриптом,верно<META>Этикеткаиз Обработка пока не может быть отключена браузерами.
Установите файл cookie с помощью HTTP-заголовка ответа Set-Cookie.
Злоумышленник может использовать некоторые методы, чтобы добавить HTTP-заголовок ответа Set-Cookie к ответу веб-сервера.
Некоторые изображения в этой статье взяты из учебного курса для сертифицированных инженеров службы безопасности Sangfor. Они предназначены для удобства личного изучения и использования и не предназначены для коммерческого использования! ! ! ! Текстовый контент набран лично мной, а не перенесен напрямую! Если есть какие-либо нарушения, пожалуйста, свяжитесь с нами, чтобы удалить их! ! !
Этот документ обеспечиваетиз Информация предназначена только дляОбразовательные цели и тестирование на проникновение с явным разрешением。любой несанкционированныйиспользовать Техническая информация в этом документеиз Поведение строго запрещеноиз,И может нарушать «Сетевой закон Китайской Народной Республики» и связанные с ним законы и правила. Пользователи должны использовать полученные знания законным и соответствующим требованиям образом.,Он не может использоваться для незаконного вторжения, разрушения информационных систем и других злонамеренных действий. Мы настоятельно рекомендуем всем читателям соблюдать местные законы и этические правила.,Исследуйте информационные технологии в пределах правовых границ.