PHP后门需通过行为分析而非单纯删文件处置,应检查Web日志异常访问、可疑进程、混淆型危险函数调用(如base64_decode+eval)、小体积PHP文件及图片中嵌入代码等特征。

PHP后门不是靠“删除”就能解决的——它往往意味着服务器已被入侵,单纯删文件只是掩耳盗铃。必须先定位、分析、隔离、加固,再清理。
怎么确认是不是真有PHP后门
别一看到 shell.php 或 1.php 就直接删。很多后门会伪装成正常文件(比如命名为 wp-config-backup.php),或藏在图片里(avatar.jpg 实际是 PHP 代码)。关键看行为,不是看扩展名:
- 检查 Web 日志中异常高频访问的 PHP 文件,尤其是 POST 请求量突增的路径
- 用命令查可疑进程:
ps aux | grep php(Linux)或任务管理器里找非 Web 服务启动的php.exe(Windows) - 搜索常见一句话特征:
eval($_POST[、assert($_GET[、system($_GET[—— 但注意混淆写法,如 base64_decode + 变量拼接 - 用
find /var/www -name "*.php" -size -2k -type f(Linux)或dir /s /b *.php | findstr "\.php$" | findstr "\(Windows)筛出极小、命名异常的 PHP 文件
Linux下删PHP后门要注意权限与隐藏入口
Linux 下删不掉,大概率是权限没拿对,或者后门已提权并设了不可修改属性:
- 先用
lsattr filename.php查是否被加了a(追加)或i(不可变)属性;如果是,必须用chattr -i filename.php解锁才能删 - 别只删 Web 目录下的文件——检查
/tmp、/dev/shm、/var/tmp,攻击者常把后门放这里并用include()动态加载 - 删完立刻检查同目录下是否有 .htaccess 被篡改,比如加了
AddType application/x-httpd-php .jpg,让图片也能当 PHP 执行 - 用
find /var/www -type f -name "*.php" -exec md5sum {} \; | sort对比已知干净版本的哈希,比单纯看文件名更可靠
Windows下删PHP后门要防进程占用和计划任务残留
Windows 的难点不在删除动作本身,而在后门可能正被某个服务或计划任务调用:
立即学习“PHP免费学习笔记(深入)”;
- 用
handle.exe -p apache.exe | findstr ".php"(Sysinternals 工具)查 Apache/IIS 进程是否正锁定该文件;若被占用,得先停服务再删 - 检查计划任务:
schtasks /query /fo LIST /v,重点看触发条件为“登录时”“空闲时”或“每分钟”的任务,其操作可能是执行某个 PHP 脚本 - 留意 IIS 的
web.config是否被注入规则,让.log或.bak扩展名也被当作 PHP 解析 - 回收站里的 PHP 文件也要清空——Windows 默认不彻底删除,攻击者可能故意删错路径诱导你“恢复”
删完之后最该做的事:不是庆祝,是查日志+改密码+关端口
删一个文件顶多算擦掉签名,真正的风险在漏洞没补、凭证没换、通道没封:
- 翻
access.log找最早可疑请求时间,往前推 7 天查所有异常 UA、IP、POST 参数 - 重置所有 Web 后台账号(WordPress、phpMyAdmin、后台CMS)、数据库账号、FTP 账号,密码必须强且唯一
- 关掉不用的端口(如 MySQL 默认 3306 不该对外),Web 服务限制只监听
127.0.0.1或内网 IP - 如果用的是共享主机或低配 VPS,考虑重装系统——因为内核级 rootkit 或 SUID 恶意二进制可能根本没暴露在 PHP 层面
后门删得再快,只要上传点(如未授权的文件上传接口、弱口令后台、过期 CMS 漏洞)还在,十分钟内就能回来。











