php后门是攻击者上传的绕过权限执行代码的脚本,常见于shell.php、.jpg.php等伪装文件及.htaccess中;需用find+grep筛查敏感函数,删除前须停服务、查属主权限并加固可写目录,同时检查disable_functions、crontab和systemd定时任务。
确认 PHP 后门文件的存在位置和特征
PHP 后门不是一种固定文件,而是攻击者上传的、能绕过正常权限执行任意代码的脚本,常见命名如 shell.php、1.php、wp-admin-ajax.php(仿官方路径)、.htaccess 中嵌入的 php_value auto_prepend_file 指令等。不要只盯着 .php 文件——.jpg.php、config.inc、cache/ 目录下的异常文件都可能是伪装体。
推荐用以下命令快速筛查:
find /var/www -type f -name "*.php" -size -100k -exec grep -l "eval\|base64_decode\|system\|passthru\|exec\|shell_exec\|assert" {} \; 2>/dev/null
注意:2>/dev/null 是为了忽略权限拒绝报错;如果服务器禁用了 grep -l 的递归能力,需改用 find ... -exec cat {} \; | grep ... 分步查。
删除后门时务必检查 Web 服务器用户与文件属主关系
直接 rm 文件不一定生效——如果后门是通过 Web 进程(如 www-data、nginx、apache)写入,且目录权限为 777 或属组可写,删完几秒内可能又被重新写入。必须先确认当前 Web 服务运行用户:
立即学习“PHP免费学习笔记(深入)”;
-
ps aux | grep -E "(apache|httpd|nginx|php-fpm)"查进程用户 -
ls -l /var/www/html/看关键目录属主和权限 - 若发现
www-data:www-data拥有整个网站目录,且权限是drwxrwxrwx,这就是高危信号
正确做法是:先停掉 Web 服务(systemctl stop nginx),再用 root 删除可疑文件,最后重设属主和权限。