- PVSM.RU - https://www.pvsm.ru -

Дыра в IE11 позволяет выводить попапы даже после закрытия сайта

Дыра в IE11 позволяет выводить попапы даже после закрытия сайта - 1
Уязвимость можно использовать для демонстрации «неубиваемых» попапов

Специалист по информационной безопасности Мануэль Кабальеро из Аргентины опубликовал [1] результаты своего исследования уязвимости в браузере IE11. Эксплуатация этой уязвимости позволяет владельцу сайта с внедренным эксплоитом добиться того, что у посетителя сайта начнут появляться всплывающие уведомления. Их демонстрация будет продолжаться даже после закрытия ресурса. Кроме того, при желании владелец сайта сможет запускать свой JavaScript-код, когда посетитель зловредной страницы уже ушел с нее и посещает другие ресурсы.

Уязвимость, по словам специалиста, характерна только для Internet Explorer 11, браузер Edge лишен этой проблемы, равно, как и браузеры других разработчиков. Сейчас IE11 — второй по распространенности браузер, если верить статистике NetMarketShare [2]. На первом месте сейчас находится Chrome 55 с рыночной долей в 37%, а на втором — IE11 с почти 11%. Таким образом, уязвимость может быть угрозой для большого числа пользователей.

На днях Кабальеро продемонстрировал [1], как разработчик может добиться появления попапов в браузере пользователя даже в том случае, когда он покинул сайт с добавленным разработчиком скриптом. Причем ограничения в количестве попапов нет. Вызвать их можно следующим образом.

for (var i = 0; i < 10; i++)
{
   doc = new ActiveXObject("htmlFile");
   win = doc.Script; // win is the window object of the ActiveXObject
   win.setTimeout("alert('Hello, world!')", i * 100);
}

Единственный способ избавления от этой напасти — закрытия вкладки, на которой прежде работал сайт с эксплоитом и открытие новой вкладки.

doc = new ActiveXObject("htmlFile");
win = doc.Script; // win is the window object of the ActiveXObject
win.alert("Hello");
win.alert("2nd alert, no option to block me.");
win.alert("3rd alert, and still no way out!");

Дыра в IE11 позволяет выводить попапы даже после закрытия сайта - 2

Использовать такую уязвимость может широкий круг злоумышленников для самых разных целей. Например, это может быть обычная реклама. А может быть и попытка обмануть пользователя, с тем, чтобы он загрузил на свой компьютер зловредное программное обеспечение. Причем, если попапы будут появляться во время работы пользователя с авторитетными ресурсами вроде Google, Wikipedia, Bing, то подозрения к появляющимся окошкам будет меньше, чем в любом другом случае. Здесь используется код с функцией window.open.

doc = new ActiveXObject("htmlFile");
 
// Alert every 5 seconds
doc.Script.setInterval("alert('Hello, world!')", 5000);
 
// Save a self-reference
doc.Script.doc = doc;
 
// Use the open method. Nothing changes here, but now IE will not
// destroy the previous reference and the script will continue running.
window.open("","_self"); // "Does nothing", but this line is crucial.

Можно представить себе, как пользователь, работая с поисковым сервисом Google, получает сообщение о необходимости добавить плагин к браузеру, улучшающий работу поиска.

Дыра в IE11 позволяет выводить попапы даже после закрытия сайта - 3

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

Дыра в IE11 позволяет выводить попапы даже после закрытия сайта - 4

Сами попапы — относительно небольшая проблема [3]. Дело в том, что вместо кода всплывающего уведомления можно добавить что угодно.

«Например, обнаружена новая уязвимость нулевого дня, и злоумышленнику требуется загрузить 5 МБ, используя браузер жертвы. Как он может быть уверенным в том, что времени на эту операцию хватит? А с использованием такого скрипта у атакующего будет время для чего угодно», — говорит аргентинец.

Можно показывать фальшивую рекламу, при клике на которую пользователь получит зловредное ПО. Можно загружать в браузер жертвы другие эксплоиты, работа которых при объединении их с обнаруженной Кабальеро уязвимостью будет еще более эффективной. Сама уязвимость основана на баге Universal Cross-Site Scripting (UXSS), позволяя злоумышленнику обходить Same Origin Policy (SOP) через компонент htmlFile/ActiveXObject.

Дыра в IE11 позволяет выводить попапы даже после закрытия сайта - 5

К сожалению, исправить проблему пока не представляется возможным. Кабальеро с недавних пор прекратил отсылать в Microsoft сообщения об ошибках, поскольку компания несколько раз проигнорировала информацию, предоставленную экспертом. А вот увидеть проблему своими глазами можно, для этого достаточно зайти на тестовую страницу [7], созданную аргентинцем. Напомню, что уязвимости подвержен только браузер IE11, так что с другими браузерами оценить угрозу нельзя (в частности, в браузере Firefox работают лишь «regular alerts» со страницы автора).

Возможно, после огласки Microsoft все же обратит внимание на эту проблему и ликвидирует ее — уже слишком такая уязвимость опасна для пользователей IE11.

Автор: marks

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/uyazvimost/246754

Ссылки в тексте:

[1] опубликовал: http://www.brokenbrowser.com/zombie-alert/

[2] статистике NetMarketShare: https://www.netmarketshare.com/browser-market-share.aspx?qprid=2&qpcustomd=0

[3] относительно небольшая проблема: https://www.bleepingcomputer.com/news/security/unstoppable-javascript-attack-helps-ad-fraud-tech-support-scams-0-day-attacks/

[4] https://t.co/jj7tC6AtcE: https://t.co/jj7tC6AtcE

[5] https://t.co/wxtz4S7UIr: https://t.co/wxtz4S7UIr

[6] February 20, 2017: https://twitter.com/homakov/status/833696615005356032

[7] тестовую страницу: https://www.cracking.com.ar/demos/zombiealert/

[8] Источник: https://geektimes.ru/post/286384/