哪个 php 文件从我的服务器发送电子邮件

哪个 php 文件从我的服务器发送电子邮件

可能重复:
我的服务器被黑了 紧急求助

PHP 文件正在从我的服务器发送电子邮件。有人能告诉我如何找到从我的服务器发送电子邮件的文件吗?

它就像一条虫子。

答案1

您可以尝试使用 grep 查找包含邮件功能的 php 文件。例如:

grep -i "mail" *.php

答案2

如果使用该函数发送邮件,mail()您可以编写一个包装器/usr/sbin/sendmail

#!/bin/sh
/usr/bin/logger -p mail.info "phpmail: pwd=${PWD}"
/usr/sbin/sendmail -t -i $*

现在,在您的中指定该包装器php.ini

sendmail_path = <path to wrapper>

现在您将看到一个日志条目,mail.log指示脚本位于哪个目录中。

答案3

您怎么知道发送邮件的是 PHP 文件?

如果它肯定是一个 PHP 文件并且正在从 Apache 请求,请查看 Apache 的访问日志。

如果它是从服务器上的命令行运行的,Lucas Kauffman 的答案的变体可能会帮助您找到它,因为这些文件在执行后几乎总是被删除,但是/proc如果某个进程打开了这些文件,即使已删除的文件仍然可以找到。

grep mail /proc/*/fd/*.php

或者如果文件不是名为“.php”:

grep mail /proc/*/fd/*

这两个命令都需要以 root 身份运行,sudo这是不够的。

如果它在命令行上运行,而没有在 Apache 中被请求,则其他人已控制您的服务器。如果您无法快速找出他们是如何进入的,只需将其删除,从备份中重新安装并升级所有内容,希望可以修复他们在升级中使用的任何缺陷。

相关内容