
Проверка концепции перехвата контента с использованием Flash, PDF и Silverlight
Распространяется под лицензией AGPL (см. LICENSE для получения дополнительной информации).
Этот проект можно использовать для демонстрации proof-of-concept (PoC) следующих видов атак:
Примечание: .XAP-файлы можно переименовать в любое другое расширение, но их больше нельзя загружать кросс-доменно. Похоже, Silverlight определяет расширение файла на основе указанного URL и игнорирует его, если это не .XAP. Это по-прежнему можно эксплуатировать, если веб-сайт позволяет пользователям использовать ";" или "/" после фактического имени файла, чтобы добавить расширение ".XAP".
Примечание: .XAP-файлы можно переименовать в любое другое расширение, но их больше нельзя загружать кросс-доменно. Похоже, Silverlight определяет расширение файла на основе указанного URL и игнорирует его, если это не .XAP. Это по-прежнему можно эксплуатировать, если веб-сайт позволяет пользователям использовать ";" или "/" после фактического имени файла, чтобы добавить расширение ".XAP".
Примечание: Когда Silverlight запрашивает .XAP-файл кросс-доменно, тип содержимого должен быть: application/x-silverlight-app.
Примечание: PDF-файлы можно использовать только в просмотрщике Adobe Reader (они не будут работать со встроенными PDF-просмотрщиками Chrome и Firefox).
Примечание: Чтение статического содержимого или данных, находящихся в открытом доступе, не может считаться проблемой. Важно удалять ложноположительные результаты из ваших бюллетеней безопасности. Обратите внимание, что использование одного символа звёздочки ("*") в заголовке «Access-Control-Allow-Origin» само по себе не является проблемой.
Пример использования:
Типы файлов, разрешённых к загрузке, должны быть ограничены только теми, которые необходимы для бизнес-функциональности.
Приложение должно выполнять фильтрацию и проверку содержимого любых файлов, загружаемых на сервер. Файлы должны быть тщательно просканированы и проверены перед тем, как стать доступными другим пользователям. При любых сомнениях файл следует отбрасывать.
Добавление заголовков «Content-Disposition: Attachment» и «X-Content-Type-Options: nosniff» в ответ для статических файлов защитит веб-сайт от атак межсайтового перехвата контента на основе Flash или PDF. Рекомендуется применять эту практику ко всем файлам, которые пользователям необходимо скачивать, во всех модулях, связанных с загрузкой файлов. Хотя этот метод не обеспечивает полной защиты веб-сайта от атак с использованием Silverlight или подобных объектов, он может снизить риск использования объектов Adobe Flash и PDF, особенно когда загрузка PDF-файлов разрешена.
Междоменные файлы политик Flash/PDF (crossdomain.xml) или Silverlight (clientaccesspolicy.xml) следует удалять, если они не используются и нет бизнес-требования для взаимодействия Flash- или Silverlight-приложений с веб-сайтом.
Кросс-доменный доступ должен быть ограничен минимальным набором доверенных доменов, которым требуется доступ. Политика доступа считается слабой или небезопасной, когда используется подстановочный символ, особенно в значении атрибута «uri».
Любой файл «crossdomain.xml», используемый для приложений Silverlight, следует считать слабым, поскольку он может принимать только подстановочный символ («*») в атрибуте domain.
Кэширование браузером должно быть отключено для файлов corssdomain.xml и clientaccesspolicy.xml. Это позволяет веб-сайту легко обновлять файл или ограничивать доступ к веб-сервисам при необходимости. После проверки файла клиентской политики доступа он остаётся действующим на протяжении сессии браузера, поэтому влияние отсутствия кэширования на конечного пользователя минимально. Это можно указать как риск низкого или информационного уровня в зависимости от содержимого целевого веб-сайта, а также от безопасности и сложности файла(ов) политики.
Заголовки CORS следует пересмотреть, чтобы они были включены только для статических или общедоступных данных. В противном случае заголовок «Access-Control-Allow-Origin» должен содержать только авторизованные адреса. Другие заголовки CORS, такие как «Access-Control-Allow-Credentials», должны использоваться только при необходимости. Элементы заголовков CORS, такие как «Access-Control-Allow-Methods» или «Access-Control-Allow-Headers», следует пересмотреть и удалить, если они не требуются.
Примечание: использование заголовка «Referer» не может быть решением, поскольку этот заголовок можно задать, например, отправив POST-запрос с помощью Adobe Reader и PDF (см. файл «xfa-manual-ContentHijacking.pdf» в каталоге «objects»). Обновление: установка заголовка «referer» уже учтена Adobe, если только вы не найдёте обходной путь для этого ;)
Смотрите страницу проекта для получения последних обновлений/помощи: https://github.com/nccgroup/CrossSiteContentHijacking
Soroush Dalili (@irsdl) из NCC Group
Даже загрузка JPG-файла может привести к кросс-доменному перехвату данных (клиентская атака)! https://soroush.secproject.com/blog/2014/05/even-uploading-a-jpg-file-can-lead-to-cross-domain-data-hijacking-client-side-attack/
Множественные уязвимости PDF — текст и изображения на стероидах http://insert-script.blogspot.co.at/2014/12/multiple-pdf-vulnerabilites-text-and.html
HTTP-взаимодействие и безопасность в Silverlight http://msdn.microsoft.com/en-gb/library/cc838250(v=vs.95).aspx
Объяснение кросс-доменных файлов и файлов политики клиентского доступа для Silverlight http://www.devtoolshed.com/explanation-cross-domain-and-client-access-policy-files-silverlight
Спецификация файла кросс-доменной политики http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html
Настройка файла crossdomain.xml для HTTP-стриминга http://www.adobe.com/devnet/adobe-media-server/articles/cross-domain-xml-for-streaming.html
Эксплуатация CVE-2011-2461 на google.com http://blog.mindedsecurity.com/2015/03/exploiting-cve-2011-2461-on-googlecom.html