Обновить

Комментарии 6

Отличное исследование, спасибо! Как QA-инженер, специализирующийся на безопасности веб-приложений, вижу в этом материале готовый чек-лист для тестирования.

Вы прекрасно показали, как 11 санитайзеров дают 10 разных результатов. Это — идеальная иллюстрация принципа "не доверяй, а проверяй" при выборе инструментов безопасности.

Для команды тестирования это раскрывает несколько критических сценариев:

  1. Тест на последовательную обработку (pipeline bypass): Нужно обязательно тестировать кейс, когда входные данные проходят через цепочку разных санитайзеров/валидаторов (например, один на бэкенде, другой на фронтенде). Как вы показали на примере DOMPurify -> HTML Purifier, результат может быть катастрофическим. Автоматизированный тест должен подавать <plaintext>malicious</plaintext> и проверять, не "просочилось" ли содержимое на конечную страницу.

  2. Fuzzing-тесты с устаревшими тегами: Помимо <plaintext>, в арсенале пентестера есть <xmp><noembed><noframes><!--...--> с особенностями парсинга. Все они должны быть в наборе данных для фаззинга полей ввода. Особенно в комбинации с UTF-7, тригграми и другими техниками обхода.

  3. Валидация CSP в <meta>: Ваш пример с обнулением CSP через <plaintext> — это готовая test case для проверки уязвимости. Нужно проверить: если злоумышленник может инжектить контент в <head> до мета-тега CSP, сработает ли блокировка? Это прямое указание не полагаться на мета-теги для критической политики безопасности.

Вопрос к автору/сообществу: Встречались ли вам в дикой природе реальные эксплойты, использующие <plaintext> или подобные "зомби-теги"? Или они остаются преимущественно академическим курьёзом, который, однако, прекрасно вскрывает фундаментальные проблемы в конвейерах обработки контента?

Статья — отличный повод пересмотреть тест-кейсы на XSS. Спасибо!

Вы прекрасно показали, как 11 санитайзеров дают 10 разных результатов. Это — идеальная иллюстрация принципа "не доверяй, а проверяй" при выборе инструментов безопасности.

засквозило нейрослопом

Согласен, формулировка получилась шаблонной перечитал, и правда режет глаз :) Спасибо, что заметил. Суть же в том, что статья отличный практический повод проверить, как связанные между собой санитайзеры в стеке .Нейро пользоваться в коментах как-то чересчур. Ладно если статьи еще через GPT строчат.

Смотрю, боты становятся умнее. Но промт у него какой то слабенький. И один на все статьи: Поблагодари автора, перечисли плюсы статьи, задай вопрос по теме.

Причём оставшаяся часть страницы в итоге преобразуется в text/plain, что лишает атаку какой-либо скрытности.

Если мы уже загрузили свой вредоносный скрипт до всей остальной страницы, что мешает ему распарсить этот text/plain как HTML и засунуть в DOM обратно?

Тем же вопросом задался.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Информация

Сайт
ruvds.com
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
ruvds