我有一个网站,用户可以上传文件与他人分享。但首先我需要验证它们。 最近有人使用以下命令上传了一个.php文件:
‰PNG
<?php
eval(gzinflate(base64_decode("very large strings of characters")));
?>
我认为它可能有害,所以我没有打开它。
有没有人知道它的作用?
答案 0 :(得分:3)
没有人可以告诉你,只是做
<?php echo gzinflate(base64_decode("very large strings of characters")) ?>
看看会做什么......
编辑:现在您已经发布了整个字符串,我将其解码并粘贴here
答案 1 :(得分: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行代码一样,它似乎设置了Basic Auth。然后有很多数据库功能和一些基本的html界面。这在PHP中。还有一些perl。接近尾声。
基本上它似乎做的是:显示该图像的每个页面都将输出该代码的一部分并与您的代码一起执行,它将尝试获取输入数据,或尝试查找会话数据和或数据库值。
然后代码的其他部分基本上创建一个管理界面,当访问url时,如下所示:url?admin = 1,这将启动Basic Auth身份验证。然后有一个简单的界面phpmyadmin like interface,用户可以尝试不同的查询并收集有关你的数据库的元数据。可能其他东西也会运行到exec等。
我可能错了,但这是我通过代码得到的要点。
答案 2 :(得分:0)
代码很好,唯一需要注意的是加密的长字符串
< ?php eval(gzinflate(base64_decode("very large strings of characters")));
可以参考这种陈述的参考