Комментарии 6
Отличное исследование, спасибо! Как QA-инженер, специализирующийся на безопасности веб-приложений, вижу в этом материале готовый чек-лист для тестирования.
Вы прекрасно показали, как 11 санитайзеров дают 10 разных результатов. Это — идеальная иллюстрация принципа "не доверяй, а проверяй" при выборе инструментов безопасности.
Для команды тестирования это раскрывает несколько критических сценариев:
Тест на последовательную обработку (pipeline bypass): Нужно обязательно тестировать кейс, когда входные данные проходят через цепочку разных санитайзеров/валидаторов (например, один на бэкенде, другой на фронтенде). Как вы показали на примере DOMPurify -> HTML Purifier, результат может быть катастрофическим. Автоматизированный тест должен подавать
<plaintext>malicious</plaintext>и проверять, не "просочилось" ли содержимое на конечную страницу.Fuzzing-тесты с устаревшими тегами: Помимо
<plaintext>, в арсенале пентестера есть<xmp>,<noembed>,<noframes>,<!--...-->с особенностями парсинга. Все они должны быть в наборе данных для фаззинга полей ввода. Особенно в комбинации с UTF-7, тригграми и другими техниками обхода.Валидация CSP в <meta>: Ваш пример с обнулением CSP через
<plaintext>— это готовая test case для проверки уязвимости. Нужно проверить: если злоумышленник может инжектить контент в<head>до мета-тега CSP, сработает ли блокировка? Это прямое указание не полагаться на мета-теги для критической политики безопасности.
Вопрос к автору/сообществу: Встречались ли вам в дикой природе реальные эксплойты, использующие <plaintext> или подобные "зомби-теги"? Или они остаются преимущественно академическим курьёзом, который, однако, прекрасно вскрывает фундаментальные проблемы в конвейерах обработки контента?
Статья — отличный повод пересмотреть тест-кейсы на XSS. Спасибо!
Вы прекрасно показали, как 11 санитайзеров дают 10 разных результатов. Это — идеальная иллюстрация принципа "не доверяй, а проверяй" при выборе инструментов безопасности.
засквозило нейрослопом
Согласен, формулировка получилась шаблонной перечитал, и правда режет глаз :) Спасибо, что заметил. Суть же в том, что статья отличный практический повод проверить, как связанные между собой санитайзеры в стеке .Нейро пользоваться в коментах как-то чересчур. Ладно если статьи еще через GPT строчат.
Смотрю, боты становятся умнее. Но промт у него какой то слабенький. И один на все статьи: Поблагодари автора, перечисли плюсы статьи, задай вопрос по теме.
Причём оставшаяся часть страницы в итоге преобразуется в
text/plain, что лишает атаку какой-либо скрытности.
Если мы уже загрузили свой вредоносный скрипт до всей остальной страницы, что мешает ему распарсить этот text/plain как HTML и засунуть в DOM обратно?
Отладка с помощью сил древнего зла