Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Анализ актуальных киберугроз

XSS атаки на HTML5

С появлением новых стандартов, появляются и новые уязвимости. В области веб-программирования -- это практически непрерывный процесс. На сегодняшний день наибольшую популярность набирает новая версия языка разметки гипертекста HTML5.

Данная версия разметки уже поддерживается в различной степени всеми современными браузерами и уже перешла в стадию рекомендованной для стандартизации W3C.

В связи с этим многие разработчики уже применяют данную разметку в своих проектах. Существует довольно много описаний новых векторов для проведения XSS-атак с использованием новых тегов и атрибутов и старые методы экранирования зачастую не дают нужного уровня защиты сайта.

Рассмотрим несколько наиболее популярных векторов атак.

Простейшим примером служит использование нового атрибута formaction с помощью, которого можно вызвать действие или javascript на событие в форме для этого нужно интегрировать в разметку код вызывающий это действие, например, по нажатию на кнопку.

Аналогичным способом можно использовать в <button> такие новые атрибуты как onforminput, onformchange. Самое опасное в этом, что можно вызывать события в форме даже за ее пределами.

<form id="formId"></form>

<button form="formId" formaction="javascript:alert('Hack')"> Нажми меня</button>

Для защиты от подобных векторов следует запрещать пользователям передавать в поля ввода теги типа button и submit. И по возможности не присваивать идентификаторы формам.

Опасны так же теги с атрибутом autofocus. Если пользователь через форму ввода занесет такой элемент на страницу, то он автоматически перенаправит фокус на себя при загрузке и может исполнить свой код.

<input onfocus=write('Hack') autofocus>

Так же возможно создание конкурирующего тега с атрибутом autofocus.

<input onblur=write('Hack') autofocus><input autofocus>

Браузер Opera версии старше 10.5 поддерживает атрибут poster с возможностью написания псевдоскрипта. Чтобы он работал корректно, следует допускать только относительные URI, http URI и только правильные MIME-типы для элементов dataURI.

Если уязвимым является тег <body>, то можно примешать к нему атрибут onscroll и назначить выполнение javascript.

< body onscroll = alert('Hack') > Тело страницы <input autofocus>

Аналогичным способом можно внедрить атрибут oninput назначить ему событие. Причем данный атрибут может быть внедрен в любой тег или обрамляющую область через пользовательский ввод.

В HTML5 появились новые теги, такие как <audio> и <video>. Они уже поддерживаются браузерами GoogleChrome, Opera, Firefox.

Данные теги открывают уязвимость при использовании внутри них тега <source>. Уязвимость заключается в возможности задать обработчик события onerror.

<video onerror="alert('Hack')"><source></source></video>

Браузер Mozila Firefox имеет встроенную поддержку SVG и MathML. Так же в нем реализована поддержка нового атрибута href, что делает возможным запуск JavaScript'a.

<math href="javascript:alert('Hack')">Нажми на меня</math>

Такие браузеры как Chrome и Opera поддерживают HTML5 атрибут dirname, что делает возможным изменить поток пользовательского ввода в другой входной элемент и тем самым разгласить скрытую информацию, например, пароль.

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Предметы
Агропромышленность
Банковское дело
БЖД
Бухучет и аудит
География
Документоведение
Естествознание
Журналистика
Информатика
История
Культурология
Литература
Логика
Логистика
Маркетинг
Математика, химия, физика
Медицина
Менеджмент
Недвижимость
Педагогика
Политология
Право
Психология
Религиоведение
Социология
Статистика
Страховое дело
Техника
Товароведение
Туризм
Философия
Финансы
Экология
Экономика
Этика и эстетика
Прочее