Хакер Феросс Абукадижи (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.
|