Pull to refresh

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

Reading time3 min
Views9.4K

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

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

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

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

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!");



Использовать такую уязвимость может широкий круг злоумышленников для самых разных целей. Например, это может быть обычная реклама. А может быть и попытка обмануть пользователя, с тем, чтобы он загрузил на свой компьютер зловредное программное обеспечение. Причем, если попапы будут появляться во время работы пользователя с авторитетными ресурсами вроде 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 позволяет блокировать их в браузере, но при желании этого можно избежать, закрыв кнопку игнорирования уведомлений другой кнопкой с любым текстом.



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

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


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



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

Возможно, после огласки Microsoft все же обратит внимание на эту проблему и ликвидирует ее — уже слишком такая уязвимость опасна для пользователей IE11.
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
+19
Comments5

Articles

Change theme settings