document.domain manipulation

Что такое манипуляции с document.domain на основе DOM?

Уязвимости манипуляции доменом документа возникают, когда скрипт использует контролируемые атакующим данные для установки свойства document.domain. Злоумышленник может использовать эту уязвимость, чтобы сконструировать URL, который при посещении приведёт к установке произвольного значения document.domain на странице ответа.

Свойство document.domain используется браузерами для обеспечения SOP. Если две страницы из разных источников явно устанавливают одинаковое значение document.domain, то эти две страницы могут взаимодействовать без ограничений. Если злоумышленник может заставить страницу целевого сайта и другую контролируемую им страницу (напрямую или через уязвимость, подобную XSS) установить одинаковое значение document.domain, то злоумышленник может полностью скомпрометировать целевую страницу через уже контролируемую страницу. Это открывает такие же возможности эксплуатации, как и при обычных XSS.

Как правило, браузеры применяют некоторые ограничения к значениям, которые можно присваивать document.domain, и могут предотвращать использование значений, полностью отличных от реального источника страницы. Однако есть две важные оговорки. Во‑первых, браузеры допускают использование дочерних или родительских доменов, поэтому злоумышленник может переключить домен целевой страницы на домен связанного веб‑сайта с более слабой защитой. Во‑вторых, некоторые особенности работы браузеров позволяют переключаться на полностью несвязанные домены. Эти оговорки означают, что возможность манипулировать свойством document.domain страницы, как правило, представляет собой уязвимость, по степени серьёзности близкую к обычным XSS.

Какие приёмники могут привести к уязвимостям манипуляции document.domain?

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

Как предотвратить уязвимости манипуляции document.domain

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

Last updated