- Регистрация
- 13 Июн 2025
- Сообщения
- 15
- Реакции
- 1
- Баллы
- 3
Сегодня разберём коварную атаку - Mutation XSS, которая обходит стандартные защиты за счёт особенностей обработки HTML браузерами.Всем привет!
Только для понимания механизмов уязвимостей!
Суть mXSS
Это XSS, который проявляется только после обработки HTML браузером, когда:
- Изначально "безопасный" код трансформируется парсером
- Возникают неожиданные теги/атрибуты
- Срабатывает инъекция после санитизации
Пример атаки
Исходный "безопасный" код:
Код:
html
<div><style><img src="</style><img src=x onerror=alert(1)>">
После обработки браузером:
Код:
html
<div>
<style><img src="</style>
<img src="x" onerror="alert(1)">
</div>
Что произошло?
1. Парсер некорректно обработал вложенные теги
2. ЗакрылКод:</style>
3. Превратил "безопасный" код в рабочий XSS
Где встречается?
- Редакторы контента (TinyMCE, CKEditor)
- Конвертеры Markdown→HTML
- Шаблонизаторы с dangerouslySetInnerHTML
- Системы рендеринга email (Gmail, Outlook)
Защитные меры
1. Обновлённые санитайзеры
- DOMPurify 3.0+ с защитой от mXSS
- sanitize-html с
Код:
allowVulnerableTags: false
2. Дополнительная валидация
Код:
javascript
if (html.includes('<style><') || html.includes('</style><')) {
throw new Error('Potential mXSS attack');
}
3. Защита через CSP
Код:
html
Content-Security-Policy: default-src 'self'; script-src 'none'
Почему это серьёзно?
- Фиксировалось в Gmail, ProtonMail
- Обнаружено в WordPress через Shortcode API
- Возможно даже в React/Vue при неправильном рендеринге
P.S. В 2025 году атаки через mXSS всё ещё эффективны против многих систем.