PHP后门常伪装成备份文件或藏于可写目录,代码多经base64_decode等混淆,需检查近7天修改文件、搜索危险函数及隐藏配置文件;删前须断网备份、禁用网站、清理.htaccess和.user.ini,并修复权限与漏洞。

确认后门文件位置和特征
虚拟主机环境下,PHP后门通常以伪装成正常文件的形式存在:比如 wp-config.php.bak、cache.php、1.php、shell.php,或藏在 /wp-content/plugins/、/uploads/ 等可写目录下。不要只依赖文件名判断——很多后门会用 base64_decode、gzinflate、str_rot13 等混淆代码,实际内容可能只有一行 eval($_POST['x']); 或更隐蔽的 assert($_GET['a'])。
操作建议:
立即学习“PHP免费学习笔记(深入)”;
- 登录主机控制面板(如 cPanel),用「文件管理器」按修改时间排序,重点检查近 7 天内新增或被修改过的 PHP 文件
- 用 FTP 工具连接后,在本地用文本编辑器打开可疑文件,搜索关键词:
eval(、assert(、system(、exec(、shell_exec(、base64_decode(、gzinflate(、file_get_contents(+$_组合 - 注意隐藏文件:开启显示隐藏文件(
.user.ini、.htaccess)——有些后门通过.htaccess的AddHandler或php_value auto_prepend_file注入
删前必须备份并断网访问
误删核心文件会导致网站崩溃,尤其 WordPress 插件目录里混入后门时,直接删整个插件包可能让前台报错。更要紧的是:如果后门还在运行,你边删边被重写。
操作建议:
立即学习“PHP免费学习笔记(深入)”;
- 先停用网站:在 cPanel 中临时禁用域名,或改名
index.php为index.php.off,阻断外部请求 - 用主机自带「备份」功能或 FTP 全量下载当前网站根目录(至少保留一份完整副本到本地)
- 禁止通过公网访问管理后台(如 wp-admin)——改名或加 IP 白名单,防止删到一半又被上传新后门
清理 .htaccess 和 .user.ini 文件
这两个文件常被忽略,却是后门持久化的关键。攻击者不一定要放 PHP 文件,只要在 .htaccess 里写一行:php_value auto_prepend_file "/path/to/backdoor.php",所有 PHP 请求都会自动加载它;或者用 .user.ini 设置 auto_prepend_file,效果一样且更难察觉。
操作建议:
立即学习“PHP免费学习笔记(深入)”;
- 检查网站根目录及子目录下的所有
.htaccess文件,删除非法AddHandler、SetHandler、php_flag、php_value行 - 查找
.user.ini(尤其在/wp-content/、/uploads/下),删除含auto_prepend_file、disable_functions、allow_url_include的行 - 删完后重启 PHP 进程(虚拟主机一般无法操作,但可联系服务商确认是否已清除缓存)
修复权限与排查二次入口
删完表面文件不等于安全。如果目录权限是 777,或 WordPress 插件/主题有未修复的 RCE 漏洞(如旧版 revslider、mail-masta),攻击者几小时内就能重新上传。
操作建议:
立即学习“PHP免费学习笔记(深入)”;
- 把所有 PHP 文件权限改为
644,目录改为755;特别检查/wp-content/下的plugins、themes、uploads目录,确保不是 777 - 更新 WordPress 核心、所有激活插件和主题——哪怕只用一个旧版 Contact Form 7(
),也可能成为新后门入口 - 检查数据库:进 phpMyAdmin,查
wp_options表中option_name = 'cron'或'theme_mods_.*'的option_value字段,是否含 base64 编码的恶意脚本
真正麻烦的不是删文件,是搞不清它怎么进来的。一次清理后,若 48 小时内又出现同名后门,基本说明漏洞没堵住,或数据库、备份包本身已被污染。











