ZBlogCMS 网站被黑如何排查修复

chinaz
chinaz 初级会员超兽战士
发布于 2026-10-08 05:20 ·1 浏览 ·0 回复

学完这篇,你能按步骤确认 ZBlogCMS(Z-BlogPHP)站点是否被入侵、找出后门文件与被篡改的数据,并完成清理和加固,让网站恢复正常访问。

第一步:先拿到"被黑"的实锤

这一步是确认问题到底出在哪,避免误判成服务器故障。

在本地终端执行(把域名换成你自己的):

curl -I https://你的域名/
curl -A "BaiduSpider" -s https://你的域名/ | head -60

第二种是伪装百度蜘蛛抓取,很多黑链只对搜索引擎 UA 展示。常见症状:返回 302 跳转到博彩站、页面底部多出看不见的外链、<title> 被替换、浏览器提示"危险网站"、服务器 CPU 长期 100%。

注意:别用浏览器直接看,很多马会判断 Cookie 和 Referer,浏览器里一切正常。

第二步:备份现场,再动手

这一步是防止你删错东西后无法回滚,做完你会有一份完整的压缩包和 SQL 文件。

tar -czf /root/site_$(date +%F).tar.gz /www/wwwroot/你的站点目录
mysqldump -u数据库用户 -p 数据库名 > /root/db_$(date +%F).sql

备份完再开始清理。同时记下发现异常的时间点,方便后面按时间筛文件。

第三步:按修改时间锁定可疑文件

这一步能快速找出被写入的木马。Z-BlogPHP 正常更新的文件时间是你升级的那天,其余近期被改的都可疑。

find /www/wwwroot/你的站点 -type f -name "*.php" -printf "%TY-%Tm-%Td %TH:%TM  %p\n" | sort -r | head -50

重点看这几个位置:

  • 根目录下一串随机名或纯数字的 .php(如 a1.php、x.php)
  • .htaccess(Apache)或站点 Nginx 配置里的跳转规则
  • zb_users/plugin/、zb_users/theme/ 下你不认识的新目录
  • zb_users/upload/、zb_users/avatar/ 里出现的 .php 文件(正常这里只该有图片)

第四步:搜后门特征码

这一步是把藏得深的马挖出来。执行:

grep -rn --include="*.php" -E "eval\(|assert\(|base64_decode\(|gzinflate\(|str_rot13\(|create_function\(" /www/wwwroot/你的站点

同时检查定时任务和数据库:

crontab -l
mysql -u用户 -p -e "SELECT mem_ID,mem_Name,mem_Level FROM 库名.zbp_member ORDER BY mem_ID DESC LIMIT 20;"
mysql -u用户 -p -e "SELECT log_ID,log_Title FROM 库名.zbp_post ORDER BY log_ID DESC LIMIT 20;"

如果 zbp_member 里多出陌生管理员,或 zbp_post 里批量出现带外链的文章,就是数据库被写入了。

第五步:清理与恢复

这一步做完,网站内容回到干净状态。

  1. 删除所有确认的陌生 PHP 文件和后门。
  2. 被改动的核心文件(index.php、zb_system/ 下的文件),从官方最新完整包解压后覆盖同名文件,不要手改。
  3. 数据库里先 SELECT 确认,再 DELETE 垃圾文章和陌生管理员账号。
  4. 后台顶部导航 → 用户管理,修改管理员密码;同时改数据库密码、FTP/SSH 密码。
  5. 后台 → 应用中心,卸载你不再使用的插件和主题(很多马就是从废弃插件进来的)。
  6. 升级 Z-BlogPHP 到当前最新版本。

注意:只删文件不改密码,等于门锁没换,通常几天内会再次被植入。

第六步:加固,堵住入口

这一步是防止二次入侵。给 Nginx 加一段,禁止上传目录执行 PHP:

location ~* ^/zb_users/(data|upload|avatar|cache)/.*\.php$ {
    deny all;
}

另外:目录权限设 755、文件 644,属主给 Web 运行用户;后台开启登录验证码;服务器上如果还有别的站,一并按上面流程查一遍——挂马常常是服务器级的,不是单个站的问题。

第七步:善后与观察

在百度搜索资源平台提交安全问题反馈并申请解除拦截,360、腾讯网址安全中心同理。之后连续几天看日志:

tail -f /www/wwwlogs/你的域名.log | grep -E "\.php"

出现陌生的 POST 请求路径,说明还没清干净。

小结

  1. 用 curl -A "BaiduSpider" 抓取页面,确认是否被挂马,别用浏览器判断。
  2. 动手前先 tar 打包站点、mysqldump 导出数据库。
  3. 用 find 按时间排序 + grep 特征码,双管齐下找后门。
  4. 数据库要查 zbp_member 和 zbp_post,马往往同时写文件和数据。
  5. 清完必须改全部密码、升级程序、删除废弃插件主题,并禁止上传目录执行 PHP。
版权声明:本文来自 GJ站长论坛《ZBlogCMS 网站被黑如何排查修复》
原文链接:https://www.gj0.com/thread-762.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~