第一步:断开网站对外访问,防止扩大影响
如果网站后台还能登录,先登录ZBlog后台→右上角菜单→网站设置→站点状态→勾选“维护模式”→勾选“显示维护提示”→自定义提示(可选,建议写“系统临时维护中”)→保存设置。
如果后台登不进去,就通过宝塔面板/云服务商控制台/服务器FTP/SFTP,找到网站根目录下的index.php文件,重命名为index_bak.php,新建一个纯文本index.html,内容写“系统临时维护中”。
第二步:备份网站全量数据,为后续恢复留底
不管用什么工具,先强制关闭自动备份的触发条件(避免备份带毒文件覆盖干净的旧备份),然后做数据库+源文件双备份。
数据库备份
- 宝塔面板用户:进入数据库模块→找到对应ZBlog数据库→点击备份→选择本地备份(最快)
- 云服务商控制台用户:找到云数据库产品→对应实例→备份管理→手动创建全量快照备份
- 纯FTP/SFTP用户:登录phpMyAdmin(如果有,一般云服务器会绑定,宝塔也有)→选择对应数据库→顶部导出→格式选SQL→勾选“自定义”→勾选“添加 DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT / TRIGGER 语句”→导出
源文件备份
- 宝塔面板用户:进入文件模块→找到网站根目录(一般是
/www/wwwroot/你的域名)→右键→压缩→选择zip格式→命名为zb_infected_备份日期.zip→下载到本地
- 云服务商控制台用户:找到云存储/对象存储挂载源文件的功能(如果用),或者挂载云盘→进入云盘文件管理→打包下载
- 纯FTP/SFTP用户:用FileZilla(免费安全,下载地址https://filezilla-project.org/download.php?platform=win64)→全选根目录文件→拖到本地指定文件夹
第三步:本地全量文件+数据库杀毒(核心步骤)
本地源文件杀毒
先在本地电脑解压备份的zip文件,断开电脑对外网络,用以下免费专业工具交叉杀毒:
- 工具1:360安全卫士病毒查杀→打开后选自定义扫描→勾选解压后的文件夹→开始查杀,查杀完成后直接删除带毒标记文件
- 工具2:D盾Web查杀(免费版下载地址https://www.d99net.net/download/d盾Web查杀.zip)→解压后打开
D_Scan.exe→点击扫描路径选解压后的文件夹→点击开始扫描→扫描完成后看右侧详情:绿色“正常”保留,黄色“可疑”打开检查后决定(一般ZBlog官方插件外的加密文件、eval/assert/eval(base64_decode())等危险函数都删),红色“木马”直接删
- 工具3:河马Webshell查杀(免费版下载地址https://www.shellpub.com/download)→解压后打开
HmScan.exe→新建扫描任务→选解压后的文件夹→模式选深度扫描→开始→杀完直接处理带毒/可疑文件
本地数据库杀毒
用Notepad++(下载地址https://notepad-plus-plus.org/downloads/v8.6/)打开备份的SQL文件,按Ctrl+F打开查找替换,依次查找以下木马关键词:
- eval、assert、shell_exec、system、exec、passthru、preg_replace(/e)(仅ZBlog旧版本升级前可能有少量官方preg_replace(/e),新版本一般已删除,遇到加密或不在官方代码范围内的直接删)
- javascript:、iframe、script(注意:文章/页面正常的script可以看内容判断,带跳转/加载外域木马资源的直接删)
- 自己记得的网站被篡改的敏感词(比如博彩、诈骗、成人内容)

处理完成后保存SQL文件。
第四步:上传ZBlog官方纯净源文件覆盖
即使杀毒了,也最好覆盖对应版本的官方纯净源文件(覆盖前先把本地杀毒后自己修改过的模板、插件、上传的图片视频备份到另一个本地文件夹)。
- 下载对应ZBlog版本:登录ZBlog官方论坛https://bbs.zblogcn.com/,点击顶部下载,找自己原来的版本(比如ZBlogPHP 1.7.3 Valyria)→下载Full Package(完整版)
- 解压官方源文件到本地
- 用FileZilla上传到服务器网站根目录:覆盖时选全选→全部替换(确保所有核心文件都是官方纯净的)
- 把刚才单独备份的自己修改过的模板(theme文件夹下对应主题文件夹)、插件(plugin文件夹下自己安装的正常插件文件夹)、上传的媒体文件(zb_users/upload文件夹)上传覆盖回去
第五步:导入处理后的干净数据库
- 宝塔面板用户:进入数据库模块→找到对应数据库→点击导入→选择本地处理后的SQL文件→开始导入
- 云服务商控制台用户:找到云数据库产品→对应实例→备份管理→手动恢复刚才处理后的本地SQL(或者通过phpMyAdmin导入)
- 纯phpMyAdmin用户:打开phpMyAdmin→选择对应数据库→顶部导入→选择本地处理后的SQL文件→点击执行
第六步:修改所有账号密码,加固权限
修改所有账号密码
- ZBlog后台密码:导入数据库后,先尝试用原来的密码登录,如果不行就通过phpMyAdmin修改:找到
zbp_member表→找到自己的管理员账号→点击编辑→找到Password字段→下拉选MD5→输入新密码→点击执行
- 数据库密码:宝塔面板用户→数据库模块→对应数据库→点击修改密码→设置复杂密码(建议大小写字母+数字+特殊字符,16位以上)→保存;同时修改ZBlog配置文件
zb_users/c_option.php里的数据库密码:用Notepad++打开找到'ZC_MYSQL_PASSWORD' => '原来的密码',→替换成新密码→保存上传覆盖
- 云服务器密码:云服务商控制台→云服务器实例→重置密码→设置复杂密码→重启服务器
- FTP/SFTP密码:宝塔面板用户→FTP模块→对应账号→修改密码;其他用户自行修改
加固文件/文件夹权限
用宝塔面板/FileZilla/服务器终端修改权限(Linux系统权限,644=只读+所有者可写,755=文件夹可执行进入+只读+所有者可写):
- 所有文件夹权限设为755
- 所有文件权限设为644
zb_users/c_option.php权限设为600(仅所有者可读写,其他人完全不能看)
zb_users/logs、zb_users/upload、zb_users/cache文件夹权限可以设为777(但仅Linux系统,不要搞反)
第七步:恢复网站对外访问,测试功能
先关闭维护模式:如果第一步用了后台维护模式,登录后台取消勾选;如果第一步重命名了index.php,就删除新建的index.html,把index_bak.php改回index.php。
然后测试以下核心功能:
- 后台是否能正常登录、操作
- 前台页面是否正常显示,没有篡改内容
- 文章/页面是否能正常发布、编辑、删除
- 图片视频是否能正常上传、显示
第八步:日常防木马加固建议
- ZBlog官方插件/主题只从ZBlog应用中心https://app.zblogcn.com/下载,不要用第三方破解版
- 定期(每月1次)更新ZBlog核心、插件、主题到最新版本
- 定期(每周1次)备份数据库+源文件,保留至少3份不同时间的备份
- 安装ZBlog官方安全插件:安全中心(应用中心直接搜索安装)
- 宝塔面板用户安装宝塔防火墙免费版,开启Webshell查杀功能