Cookie manipulation

Некоторые уязвимости на основе DOM позволяют злоумышленникам манипулировать данными, которыми они обычно не управляют. Это превращает обычно безопасные типы данных, такие как cookie, в потенциальные источники загрязнения. Уязвимости манипуляции cookie на основе DOM возникают, когда скрипт записывает контролируемые атакующим данные в значение cookie.

Злоумышленник может использовать эту уязвимость, чтобы сконструировать URL, который при посещении установит произвольное значение в cookie пользователя. Многие приёмники сами по себе безвредны, но атаки манипуляции cookie на основе DOM демонстрируют, как уязвимости низкой критичности иногда могут использоваться как часть цепочки эксплуатации для атаки более критичных атак. Например, если JavaScript записывает данные из источника в document.cookie без предварительной очистки, злоумышленник может манипулировать значением одного cookie, чтобы внедрить произвольные значения:

document.cookie = 'cookieName='+location.hash.slice(1);

Если сайт небезопасно отражает значения из cookie без HTML‑кодирования, злоумышленник может использовать техники манипуляции cookie, чтобы эксплуатировать это поведение.

Потенциальное воздействие этой уязвимости зависит от роли, которую cookie играет на сайте. Если cookie используется для управления поведением, возникающим в результате определённых действий пользователя (например, настройка режима production против demo), тогда злоумышленник может заставить пользователя выполнить непреднамеренные действия, манипулируя значением cookie.

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

Приёмник document.cookie может приводить к уязвимостям манипуляции cookie на основе DOM.

В дополнение к общим мерам, описанным на странице DOM-based, следует избегать динамической записи в cookie с использованием данных, поступивших из любого ненадежного источника.

Last updated