Task 2
@hexadec1malОпишите своими словами работу механизмов SOP и CORS? Также приведите примеры возможных атак при их отсутствии.
SOP - политика одного источника (Same Origin Policy). Декларирует браузеру запрещать доступ коду, исполняемым на стороне браузера (Flash player, JS, WASM), к DOM-ам, расположенным на этой странице, но принадлежащих разным доменам. В случае работы SOP-а мы сможем манипулировать через, скажем, JS только с теми DOM-ами, сорсы которого скачаны с того же домена на том же порту и с использованием такого же протокола.
Обход SOP:
- XSS, так как позволит нам запускать на стороне клиента JS в нужном нам DOM-е.
- Мисконфиг CORS.
В случае отсутствия SOP мы можем проводить абсолютно любые манипуляции со страницей, главное - получить возможность запустить скрипт. Подойдет фишинг с ссылкой, которая ведет на поднятый нами сайт.
CORS - политика совместного использования ресурсов несколькими источниками (Cross-Origin Resource Sharing). Позволяет указать те домены, для которых не будет действовать политика SOP.
Уязвимости CORS исходят из мисконфигурации. Где-то может быть слишком обширная звёздочка (asterisk, *
), где-то - null
, а некоторые сервисы могут генерировать CORS динамически в зависимости от ситуации, но с ошибками.
Как итог:
В случае отсутствия CORS нам важно наличие SOP. В случае мисконфигурации CORS нам не страшен SOP.