“前几天,我从百度搜‘浏阳网站建设’点进我自己的网站,手机一打开居然盖着一层体育非法广告!效果如下图:
地址栏明明是自己的域名,页面却被一个全屏弹窗盖得严严实实。我的第一反应就是:网站被黑了。这次黑客的手法相当隐蔽,一开始我还以为是 DNS 污染或网络流量劫持,但当我更换了多个手机设备和网络环境测试后,确定玩了个蛋!确实是网站代码被动了手脚。
今天,野马老斌把这次网站被挂马的完整排查、查杀与安全加固过程记录下来。无论是企业老板还是网站管理员,遇到网站突然弹出恶意广告、跳转非法网站的情况,都可以照着这个流程自查。
首选确定是网站被注入恶意代码
很多企业老板或者站长以为“被跳转到非法网站”是域名被劫持,加上SSL证书加密访问就可以解决,但更常见且隐蔽的情况是:网站被注入恶意代码(挂马)。恶意脚本在页面加载后生成一个全屏 iframe,把真实的网页内容完全遮挡。
这次挂马事件有三个典型特征:
- 地址栏不变: 浏览器网址依然是自己的域名,并未发生真正的 URL 跳转。
- 全屏遮挡: 弹窗基本铺满整个手机屏幕,谨慎左边和顶部有点自己网站的摸样,这是模拟出“跳转”的效果。
- 条件触发(最坑人): 只有通过百度等搜索引擎点进站 + 手机端访问才会触发弹窗,电脑端直接访问完全正常。
网站管理员平时如果只用电脑测试,根本发现不了异常。但对于搜索引擎而言,百度抓取移动端页面时会提示“该页面可能被非法篡改”,导致网站降权、收录骤降,对企业 SEO 资产造成严重打击。
为什么黑客只对“百度 + 手机”触发恶意代码?
恶意代码在服务器端做了逻辑判断,必须同时满足两个条件才会输出:
- 访问来源(Referer): 必须包含
baidu.com,说明是搜索引擎带来的精准真实流量。 - 访问设备(User-Agent): 必须是移动端手机设备,因为移动端弹窗的转化率更高。毕竟现在用手机的才是主流。
如果两个条件不同时满足,服务器就会输出正常页面,成功避开了站长的日常电脑巡检。
漏洞排查实操:后门究竟藏在哪里?
锁定“条件触发”这个突破口后,我们将网站源码打包下载到本地进行特征码全盘扫描,花了点精力抓出了隐患:
1.核心入口文件被注入:排查重点.
wp-blog-header.php 是 WordPress 每次加载都会调用的核心入口文件。黑客在文件顶部硬生生塞入了 80 行 PHP 恶意代码,伪装成“统计代码”,实则远程拉取非法广告。
2.根目录出现异常恶意文件夹:目录清理.
网站根目录下多出了 caches/ 和 themes/ 两个异常目录,里面存放着恶意缓存和配置文件,与标准 WordPress 目录结构完全不符。大家看我网站根目录下的截图,就是这两个两个文件夹。如图:
正常wordpress是没有这两个文件夹的。
3.修复环境异常与中文函数报错:环境加固.
在清理过程中,内页曾出现 mb_stripos() 未定义报错。这是由于服务器 PHP 环境缺少 mbstring 拓展导致的白屏,属于被反复折腾后暴露的环境缺陷,需要一并修复。
清除挂马与恢复网站
确认感染源后,按以下标准化流程进行清理与恢复:
- 恢复核心文件: 使用 WordPress 官方纯净原版文件,直接覆盖被注入的
wp-blog-header.php。 - 清理恶意目录: 彻底删除根目录下的异常
caches/与themes/文件夹及其所有缓存文件。 - 全盘深度扫描: 对网站主题(Themes)、插件(Plugins)、上传目录(Uploads)以及数据库进行关键词与后门特征码扫描,确保无残留。
- 重置所有安全凭据: 立即更换服务器 SSH 密码、控制面板密码、WordPress 管理员密码及数据库密码。
- 补全 PHP 环境拓展: 服务器安装
mbstring扩展,解决中文处理函数的缺失问题。 - 其实我更建议,直接重装一次服务器,虽然有点麻烦,但这是最干脆的做法。前提是大家一定要记得做网站备份,然后再进行网站搬家。
清理完成后,再次通过“手机端 + 百度搜索”复测,恶意弹窗彻底消失,网站恢复正常访问!搞定!终于万事大吉!
关于服务器和网站安全的加固
清理完代码后,必须防范下一次入侵。我们对服务器及网站做了针对性加固:
- 后台防护与权限控制: 开启登录失败自动锁定、禁用后台文件编辑器、关闭 XML-RPC 接口、隐藏 WordPress 版本号,并禁止
uploads目录执行 PHP 脚本。 - 自动化安全巡检: 部署安全扫描脚本,每日定时检查可疑函数、新增 PHP 文件及敏感目录变动。
- 自动化备份机制: 建立网站文件与数据库的每日自动备份机制。
事故的真正原因是什么?
其实我告大家,这次的网站异常,并不是WordPress本身的原因导致的安全问题,是我同服务器某个网站使用了老旧版本的DEDECMS系统(常说的织梦系统)存在的漏洞导致的整个服务器下面,所有网站全部被波及!为此我整整花了一天的时间来做网站搬家、清理病毒、恶意外链这些事。
给企业老板的三点安全建议
- 网站安全就是 SEO 资产安全: 被挂马会导致搜索引擎标记风险警告,导致积累多年的排名和流量毁于一旦。
- 重视移动端交叉测试: 很多挂马只针对手机移动端生效,排查问题时切记不要只看电脑端。
- 严禁多站点混跑与弱口令: 尽量避免将安全性低的老旧系统(如旧版 DedeCMS)与核心官网放在同一个服务器目录下,防止跨站波及。
讲真,跟大家讲这么多,其实你们大概率都听不懂,好吧,我承认我在秀!但不秀不行,毕竟只是想让你们知道,做网站这块我还是懂那么一点点的。不过你们不懂没关系,做网站、搞网络这块,有野马老斌在,没问题!
常见问题解答(FAQ)
Q:网站被挂马弹出赌博广告,通常藏在哪些文件里?
A:最常见的是主题的 functions.php、header.php、footer.php,以及 wp-config.php、wp-blog-header.php 等核心入口文件,为什么在这些文件里面,因为这是网站程序需要调用的全站文件,所以只要在这些页面注入代码,就等于掌控了整个网站的显示页面。当然也还可能伴随根目录的异常目录和 uploads 里的伪装文件。
Q:为什么电脑访问正常,手机从百度进来就会弹广告?
A:这是典型的“条件触发式”挂马,恶意代码检测了 HTTP 请求头中的来源(Referer)和设备类型(User-Agent),只有符合“百度搜索 + 移动端”的访客才会看到弹窗。
Q:清理完挂马后,还需要做哪些收尾工作?
A:必须重置所有服务器与后台密码,并建议前往百度搜索资源平台(百度站长平台)提交一次“抓取诊断”,请求搜索引擎重新抓取干净的页面。
关于野马老斌
在算法与网络技术快速迭代的时代,做网站不仅要注重前端的美观与获客能力,更要守住后端的安全底线。
我是野马老斌,专注于长沙网站建设、长沙做网站、企业 SEO 优化、GEO 优化与 AI 获客。如果您的企业网站也出现了挂马跳转、收录异常等问题,或者希望为网站做一次安全体检,欢迎随时联系野马老斌网络工作室,我们提供本地化的技术支持与一对一解决方案!同时提供互联网营销全案服务。