PHP后门需通过修改时间、可疑函数、隐藏文件等多维度定位,确认后再删除;同IP多站点须隔离用户、open_basedir、session路径及禁用危险函数;清理后须检查数据库、crontab和日志,并堵住插件更新、Git残留、slowlog权限等漏洞入口。

PHP后门文件怎么快速定位和删除
PHP后门不是靠杀毒软件能扫干净的,它往往伪装成正常文件(比如 wp-config.php、cache.php、index1.php),或藏在图片里(shell.jpg.php)。重点不是“删哪个”,而是“怎么确认它是后门”。
- 先查最近修改时间:用
find /var/www -type f -name "*.php" -mtime -7找 7 天内新增/改过的 PHP 文件 - 再筛可疑特征:用
grep -r "eval\|base64_decode\|system\|exec\|passthru\|assert(" /var/www --include="*.php"—— 注意assert()在 PHP 7.2+ 默认禁用,但老版本仍可被利用 - 检查隐藏文件:
ls -la /var/www看有没有.env.php、.htaccess.bak这类带点开头的文件 - 别直接
rm -f,先file xxx.php确认是 PHP 脚本;再head -n 20 xxx.php看头部是否含混淆代码(如长 base64 字符串、@ini_set关闭错误提示)
同IP多站点如何防止PHP后门交叉感染
共享 IP 不是问题根源,共享用户权限、共享临时目录、共享 session 存储路径才是。Apache 或 Nginx 本身不传播后门,但 PHP 进程若以同一系统用户(如 www-data)运行所有站点,一个站被拿下,就能读写其他站的文件。
- 每个站点必须用独立系统用户:用
adduser sitea --home /var/www/sitea --shell /usr/sbin/nologin创建隔离用户,再配 PHP-FPM 池(user = sitea,group = sitea) - 禁用全局
open_basedir,改用 per-pool 配置:php_admin_value[open_basedir] = /var/www/sitea:/tmp:/usr/share/php - 关闭危险函数:在对应 pool 的
php.ini里设disable_functions = system,exec,passthru,shell_exec,proc_open,popen,pcntl_exec(注意pcntl_exec常被忽略) - session.save_path 必须分站指定,不能共用
/var/lib/php/sessions;否则 A 站可伪造 session ID 写入恶意数据,B 站反序列化时触发执行
清理后必须验证的三个硬性动作
删完文件不等于清干净。后门可能已写入数据库、注册为 WordPress 插件、或通过 crontab 持久化。
- 查数据库:进 MySQL,
SELECT * FROM wp_options WHERE option_name LIKE '%theme%' OR option_value LIKE '%eval%';—— 尤其检查theme_mods_*和active_plugins - 查定时任务:
crontab -u www-data -l(如果 PHP 进程用的是www-data),也别漏了/etc/cron.d/下的文件 - 查 Web 服务器日志:用
zgrep "POST.*\.php" /var/log/apache2/access.log*或nginx/access.log*,看攻击者是否曾上传过文件、调用过 shell 路径(如/wp-content/uploads/2023/xx/shell.php)
为什么改了密码、删了文件,几天后又出现后门
因为漏洞没堵住。常见被忽视的入口点:
立即学习“PHP免费学习笔记(深入)”;
- WordPress 插件更新机制被劫持:检查
wp-includes/update.php是否被篡改,或插件目录下有异常update-core.php - Git 仓库未清理:
.git/config可能含恶意 hook,.git/logs/里可能藏加密 payload - PHP-FPM slowlog 开启但日志权限过大(如
chmod 666),攻击者可写入恶意 PHP 到 slowlog 文件,再通过file_get_contents()加载执行 - 备份文件泄露:
config.php.bak、database.sql.gz如果放在 Web 目录下,可能被下载并反推数据库密码,进而登录后台上传新后门
真正的清理不在删文件,而在切断攻击链——谁写的文件、谁读的文件、谁执行的文件,这三个权限流必须全部隔离清楚。稍有松动,后门就回来得比你改密码还快。











