
All the materials for Gareth Heyes' Black Hat talk: CSS: the bomb inside your inbox.

Добро пожаловать в репозиторий. Здесь собраны все материалы моего доклада «CSS: бомба внутри вашего почтового ящика». В этом репозитории содержатся код proof-of-concept, тестовые примеры и вспомогательные материалы, которые были выявлены, разработаны или собраны исключительно в целях легитимного исследования безопасности, анализа и защитного тестирования.
С этим исследованием можно ознакомиться здесь: Научная статья
В этом каталоге содержится PoC для атаки CSS-хотвайринг на FastMail. Первый фрагмент кода показывает вектор в незакодированном виде. Второй пример — это закодированный payload, который мутирует при использовании CSSOM и считывании CSS-кода обратно.
Этот каталог содержит PoC, демонстрирующий атаку на Medium через Firefox. Он генерирует CSS для кражи начальной, конечной и средней частей токена, а затем копирует его в буфер обмена, когда жертва нажимает кнопку. Я включил необходимые PHP-файлы для получения частей токена. Текстовые файлы должны быть доступны для записи на сервере, а файл .htaccess должен использоваться для извлечения информации из пути.
Этот каталог демонстрирует технику эксфильтрации токенов для кражи текстовых узлов, когда CSP блокирует внешние ресурсы. Я включил отладочную информацию, чтобы было понятно, как это работает.
Здесь демонстрируется кража нажатий клавиш с помощью чистого HTML. Я использую маленькие символы Unicode, чтобы скрыть буквы. Элемент marquee используется для обрезки select, чтобы он не выглядел как select.
Этот PoC показывает промпт, который я использовал, чтобы убедить Atlas получить данные со страницы и эксфильтрировать их через URL, открывая вкладки. Вы заметите, что каждый URL присутствует в промпте: Atlas, похоже, сравнивает текст промпта с URL, которые он открывает, чтобы решить, показывать ли подтверждающий промпт.
Здесь содержится PoC, который я использовал для дефейса Outlook. «data-tabster» — это HTML-атрибут, необходимый библиотеке для добавления CSS-гаджета к узлу при чтении письма.
Это эксплойт для Outlook, который я продемонстрировал в своём докладе. Он подделывает экран входа, использует трюк с анимацией для работы в реальном времени в Firefox, а метка делает фальшивое поле ввода кликабельным, воспроизводя поведение экрана входа.
Здесь показано, как я использовал метки для управления интерфейсом Outlook, чтобы закрепить сообщение атакующего во входящих жертвы.
Невероятно, но мне удалось создать полностью рабочий кейлоггер на санитизированном CSS. В нём используется CSS-гаджет для захвата экрана. Но у него есть ограничения, так как не было полного контроля над CSS. Полную версию, полностью подделывающую экран входа в Outlook, смотрите в разделе «Кейлоггер Outlook в Firefox».
Этот PoC показывает, как использовать Interest Invokers для создания кейлоггера реального времени в Chrome.
Я создал минимальный инструмент для эксфильтрации CSS-токенов во время тестирования GitLab. Вы можете использовать его при наличии инъекции стилей и если разрешены рекурсивные CSS-импорты.
Shazzer позволил мне находить обходы прокси для изображений и различные особенности и поведение CSS. Я сделал свои векторы публичными, чтобы вы могли увидеть, как они были обнаружены. Вы можете просмотреть всю коллекцию векторов по следующему URL:
Коллекция «CSS: бомба внутри вашего почтового ящика»
Примечание: векторы станут публичными после моего доклада.
Я использовал Hackvertor для создания CSS-мутаций. Это было сделано с помощью тега cssEscape. В Hackvertor также есть функция «Копировать как HTML», которая создаёт blob вашего ввода и помещает его в буфер обмена. Она использовалась для проверки сайтов на CSS-инъекцию из буфера обмена.
Не забудьте ознакомиться с научной статьёй!