Специалисты по безопасности обращают внимание, что в последнее время участились случаи атак с использованием давно известного метода preventDefault () в JavaScript (фрейворк jQuery). Они говорят, что делать простенькие скрипты с использованием preventDefault ()
научились даже скрипт-кидди, то есть техника пошла в народ.
Функция preventDefault ()
позволяет веб-сайту перехватить стандартное поведение браузера в той или иной ситуации. Например, вы жмёте на ссылку www.yandex.ru, а скрипт через preventDefault ()
перехватывает нажатие по ссылке и редиректит вас на совершенно другой сайт, на котором нарисован интерфейс www.yandex.ru. Если одновременно переключить пользователя в полноэкранный режим, то получается очень даже правдоподобно. Естественно, для фишинга должны быть готовы интерфейсы разных браузеров.
Творчески мыслящий злоумышленник найдёт массу способов, как можно использовать preventDefault ()
. Например, можно перехватывать сочетания горячих клавиш Ctrl+F — и записывать всю информацию, которую введёт пользователь в фальшивое окошко поиска текста. В данном случае простой код будет выглядеть так:
$(window).keydown(function(evt){
if((evt.which == "70" && (evt.metaKey || evt.ctrlKey))){
console.log("STRG+F");
evt.preventDefault();
/* показываем фальшивое окошко поиска */
$("#searchbox").slideDown(110);
$('#search').focus();
Опять же, для сбора информации нужно распознавать браузер и подготовить элементы интерфейса разных браузеров.
Proof-of-Concept перехвата по Ctrl+F.
Ещё один вариант — перехватывать сочетание Ctrl+S и рисовать фальшивое окно сохранения файла, с требованием ввести пароль для завершения операции.
Разработчики Google Chrome в курсе этой «уязвимости», но считают её низкоприоритетной. Вероятно, такого же мнения придерживаются и разработчики других браузеров.