Хакер Феросс Абукадижи (Feross Aboukhadijeh) прославился прошлом году, когда разработал концептуальный эксплойт HTML5 Fullscreen API для социальной инженерии. Та идея была проста до гениальности: вредоносный фишинговый сайт переключает браузер в полноэкранный режим и рисует в верхней части сайта интерфейс браузера пользователя с произвольным URL, со значком защищённого соединения. По консервативной оценке автора, 10% пользователей не обратят внимание на сообщение о том, что браузер перешёл в полноэкранный режим и на изменения в интерфейсе, такие как пропавшие закладки, пользовательские меню и другие нестандартные настраиваемые элементы UI.

Сейчас хакер выпустил ещё одну забавную демку, опять с использованием инструментов HTML5. Он открыл сайт FillDisk.com. Если зайти на этот сайт современным браузером, то свободное пространство на вашем HDD начнёт стремительно исчезать.

Стандарт HTML5 Web Storage позволяет записывать в локальный кэш на компьютер пользователя значительные фрагменты данных (5-10 МБ). Этот стандарт поддерживается всеми современными браузерами: Chrome, Firefox 3.5+, Safari 4+, IE 8+ и т.д. Стандарт предусматривает, что сайты могут нарушать правила и пытаться записать в кэш больше, чем положено. На этот случай предусмотрено квотирование максимального размера записи на один домен, то есть на один источник записи (origin) через user-agent. Нынешние квоты на origin составляют:

  • 2,5 МБ в Google Chrome
  • 5 МБ в Mozilla Firefox и Opera
  • 10 МБ в Internet Explorer

Однако, квоту можно обойти, если использовать поддомены, которые распознаются как разные «источники»: 1.filldisk.com, 2.filldisk.com, 3.filldisk.com и т.д. Спецификации предусматривают, что такие поддомены не должны расширять квоту, но на практике многие браузеры игнорируют это требование и разрешают заполнять диск до предела.

Исходный код скрипта filldisk.js, который работает на демо-сайте FillDisk.com.

Экплойт успешно работает в Chrome, Safari и IE, но не работает в Firefox и Opera, потому что там более умная реализация localStorage. Разработчики других браузеров, вероятно, исправят баг в ближайшее время: уже оформлены баг-репорт в Chromium, баг-репорт в Apple.

Оставить мнение