Может ли XSS-атака получить файлы cookie HttpOnly?

Прочтение этого сообщения в блоге о файлах cookie HttpOnly заставило меня задуматься, возможно ли HttpOnly cookie, который можно получить с помощью любой формы XSS? Джефф упоминает, что это "значительно поднимает планку", но звучит так, будто не полностью защищает от XSS.

Помимо того факта, что не все браузеры поддерживают эту функцию должным образом, как хакер может получить файлы cookie пользователя, если это HttpOnly?

Я не могу придумать, как сделать так, чтобы файл cookie HttpOnly отправлялся на другой сайт или считывался скриптом, поэтому кажется, что это безопасная функция безопасности, но меня всегда удивляло, насколько легко некоторые люди могут работать со многими слои безопасности.

В среде, в которой я работаю, мы используем исключительно IE, поэтому другие браузеры не беспокоят. Я специально ищу другие способы, которыми это может стать проблемой, которая не связана с конкретными недостатками браузера.


person Dan Herbert    schedule 23.10.2008    source источник


Ответы (5)


Во-первых, как отмечали некоторые другие, XSS может разрешить другие полезные данные, а не только кражу файлов cookie.

Но можно ли украсть файлы cookie httpOnly с помощью XSS? (игнорируя вопрос о поддержке httpOnly?) .... Ответ: Да.
Подмножество XSS известно как Межсайтовая трассировка (XST) (или перейдите к исходному исследовательский документ). В этой атаке полезная нагрузка XSS отправляет HTTP-запрос TRACE на веб-сервер (или прокси, вперед ИЛИ назад), который вернет клиенту полный запрос - ВКЛЮЧАЯ ВАШИ COOKIE, httpOnly или нет. Затем полезная нагрузка XSS может анализировать возвращенную информацию и извлекать эти восхитительные файлы cookie ...


Кстати, еще одно «подмножество» (своего рода) XSS, включает в себя добавление полезной нагрузки в заголовки ответа. Хотя это похоже, это не точно XSS, и внедрение заголовка может даже привести к HTTP Разделение ответа (HRS) - гораздо более мощное средство, позволяющее практически полностью контролировать других клиентов, заражение кешем и, конечно, доступ к файлам cookie, если это необходимо.

person AviD    schedule 08.02.2009
comment
Ничего себе, это главный ответ, и он совершенно неверен. Цитата из официального документа, написанного в 2003 году. Если это лучшая XSS-атака для получения файлов cookie только для HTTP, то мы все в полной безопасности. - person mmla; 16.04.2020
comment
@mmla неверно, или, может быть, вы имеете в виду устаревшие? Как видите, это было написано более 10 лет назад, это как десятилетие во времени Интернета. Тогда это было действительно правильно, поскольку это предшествовало появлению некоторых новых механизмов. Вы можете добавить свой собственный обновленный ответ, и я с радостью отнесусь к нему, или просто задайте новый вопрос и ответьте на него :-) - person AviD; 16.04.2020

Использование файлов cookie HttpOnly предотвратит получение этих файлов cookie с помощью XSS-атак.

Пока не:

  • ваш браузер не поддерживает HttpOnly
  • в браузере есть неизвестная до сих пор уязвимость, которая нарушает работу HttpOnly
  • сервер был скомпрометирован (но тогда вы, вероятно, все равно промыли).

Как заметил другой автор: XSS - не единственная угроза, и захват файлов cookie - не единственная угроза со стороны XSS. Я уверен, что вы это знали - я просто завершаю!

Удачи!

person AJ.    schedule 23.10.2008
comment
Согласен, я никогда не понимал, почему так много внимания уделяется «воровству» файлов cookie. Разве злоумышленнику не проще и безопаснее провести атаку из собственного браузера жертвы? Например. Они могут использовать свой вредоносный сценарий для отправки злонамеренного запроса непосредственно на сервер (при этом действительный файл cookie httpOnly пользователя все равно будет прикреплен). - person Jon; 01.05.2018

Если браузер не поддерживает HttpOnly, атака завершается успешно. Изменить: хорошо, вас это не беспокоит. Это нормально, но я оставлю это уведомление только для справки. Полезно указать это прямо.

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

Кстати, кража cookie сеанса - не единственная возможная «полезная нагрузка» XSS-атаки. Например, это может сделать вашу защиту CSRF бесполезной. Он может изменить содержимое вашего сайта, чтобы обмануть пользователя. И многое другое.

Так что лучше защитите себя хорошим способом (escape output) и думайте о HttpOnly как о дополнительном уровне защиты.

person Paweł Hajdan    schedule 23.10.2008

Сниффинг пакетов может читать файлы cookie, передаваемые по http. Но может не подпадать под XSS.

person Ramesh    schedule 23.10.2008
comment
Обнюхивание пакетов возможно, но в моем случае я использую HTTPS-соединение с цифровым сертификатом, что несколько затрудняет прослушивание пакетов. - person Dan Herbert; 23.10.2008

JavaScript может изменять HTML на странице, поэтому httpOnly не означает, что вы защищены от XSS.

person L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o&#x    schedule 27.05.2010
comment
Я понимаю, что XSS может использовать другие векторы атак. Я специально спрашивал о файлах cookie, потому что не знал, что существуют способы получить файлы cookie httpOnly через JavaScript. - person Dan Herbert; 27.05.2010