0

我有一个网站,用户可以在其中上传文件以与他人共享。但首先我需要验证它们。最近有人上传了一个带有以下命令的 .php 文件:

‰PNG

<?php
eval(gzinflate(base64_decode("very large strings of characters")));

?>

我想它可能有害,所以我没有打开它。

有谁知道它的作用?

4

3 回答 3

3

没有人能告诉你,只要做

<?php echo gzinflate(base64_decode("very large strings of characters")) ?>

看看它做什么......

编辑:现在你已经发布了我解码并粘贴在这里的整个字符串

于 2012-04-21T06:56:50.437 回答
2

似乎攻击者的代码是 base64 编码和 gzip 压缩的。

所以首先将代码从base64编码中解码出来,然后基本上解压到一串代码。

然后在结果字符串上调用 eval ,它将执行已解码和解压缩的代码。

但是如果没有看到生成了什么代码,很难说当代码运行时它会做什么。


我解码了编码的文本。使用以下方法

(我想现在我想到写入文件是一个坏主意。主要是如果你在 Windows 上。我想在关闭执行位的 Linux 上更安全。所以在这种情况下我有点幸运!)

<?php
$test = gzinflate(base64_decode("encoded_text"));
$myFile = "testFile.txt";
$fh = fopen($myFile, 'w');
fwrite($fh, $test);
fclose($fh);

我将输出写入文件,以防万一有一些随机的 html 或 javascript 可能感染我的计算机,如果我只是将其回显到我的浏览器。这可能就是您收到防病毒警告的原因。

我还不确定它的作用。


只是浏览一下代码,大约有 4,750 行代码,似乎它设置了基本身份验证。然后还有很多数据库功能和一些基本的html界面。这在 PHP 中。还有一些perl。接近尾声。

基本上它看起来是这样的:显示该图像的每个页面都会输出该代码的一部分并与您的代码一起执行它,它会尝试获取输入数据,或尝试查找会话数据和/或数据库值.

然后代码的其他部分基本上是在访问 url 时创建一个管理界面,如下所示:url?admin=1,这会带来一个 Basic Auth 身份验证。然后有一个简单的界面 phpmyadmin 类似界面,用户可以在其中尝试不同的查询并收集有关您的数据库的元数据。可能其他东西也会运行到 exec 等。

我可能是错的,但这是我通过代码得到的要点。

于 2012-04-21T06:58:11.603 回答
0

代码很好,您唯一需要注意的是加密的长字符串

< ?php eval(gzinflate(base64_decode("very large strings of characters")));

有关此类声明的参考,您可以参考

http://php.net/manual/en/function.gzinflate.php

于 2012-04-21T07:01:41.923 回答