如何查找漏洞并加固cPanel与WordPress网站的安全
共享主机多站点反复入侵的薄弱点排查方案
优先级最高:先排除跨站交叉感染
共享主机同账户下的多个站点如果没有做目录隔离,只要其中1个站点存在漏洞被植入后门,黑客就能跨目录写入所有站点的文件,单独恢复单个站点的备份完全无效。
- 验证跨站隔离是否生效:在任意一个站点根目录新建测试文件
test.php,写入代码<?php print_r(scandir(dirname(__FILE__).'/../')); ?>,访问该文件如果能列出同账户下其他站点的目录,说明隔离完全失效。优先联系主机商配置open_basedir参数限制每个站点仅可访问自身目录,或更换支持站点独立隔离的主机服务。 - 所有站点必须同步排查:不要仅处理出现恶意文件的站点,需对5个站点做全量扫描,只要有1个站点残留后门,就会反复感染所有站点。
第二步:清理持久化后门(你之前删除可见恶意文件未清理干净的可能性最高)
- 扫描隐藏文件:黑客通常会将后门命名为
.开头的隐藏文件(比如.cache.php、.index.swp),需在主机文件管理器或FTP工具中开启「显示隐藏文件」选项,遍历所有目录删除非你自行创建的隐藏文件。 - 核查定时任务:进入主机控制面板的「Cron任务」/「定时任务」板块,删除所有非你自行创建的定时任务,尤其是调用
wget、curl、php执行远程脚本或本地隐藏文件的任务,这类任务会定期自动恢复你删除的恶意文件。 - 对比核心文件哈希:拿你全新备份的所有站点的核心入口文件(index.php、站点配置文件、
.htaccess)和线上文件做哈希对比,不一致的直接用备份文件覆盖,黑客通常会在这些文件的头部/尾部追加恶意代码,普通肉眼查看很容易遗漏。
第三步:定位入侵入口漏洞
- 分析Web访问日志:导出所有站点近7天的访问日志,过滤请求方法为
POST且状态码为200的请求,重点排查以下路径的异常请求:- 不存在的php文件路径
- 插件/主题/第三方依赖目录(比如
/wp-content/plugins/、/vendor/、/template/) - 公开已知的漏洞利用路径,出现高频异常请求的路径就是漏洞入口。
- 核查所有第三方组件版本:如果使用开源CMS(WordPress、Typecho、ThinkPHP等),先确认核心版本是否存在公开未修复漏洞,再核查所有安装的插件、主题版本,尤其是已停用但未删除的插件,非官方来源的第三方主题/插件直接全部删除,这类组件的未公开/已公开漏洞是最常见的入侵入口。
- 排查弱口令风险:逐一修改FTP账户、主机控制面板账户、所有站点后台管理员账户的密码,全部替换为12位以上包含大小写字母、数字、特殊字符的强密码,避免黑客通过爆破弱口令拿到写入权限。
临时验证方案
暂时将所有站点的目录权限设置为只读,取消PHP进程的写入权限,观察3天如果没有再生成恶意文件,说明入侵入口是文件上传类漏洞或FTP写入权限泄露,可进一步缩小排查范围。
内容的提问来源于stack exchange,提问作者Monayem Islam
相关产品推荐
相关产品推荐

