跳转到主内容
极星编程网:以代码为星,赴技术山海!

PHP后门怎么删除_同IP多站点怎样避免交叉感染清理【指南】

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 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 立即学习 “ 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 目录下,可能被下载并反推数据库密码,进而登录后台上传新后门 真正的清理不在删文件,而在切断攻击链——谁写的文件、谁读的文件、谁执行的文件,这三个权限流必须全部隔离清楚。稍有松动,后门就回来得比你改密码还快。

相关文章