如何彻底清除PbootCMS中的恶意JS代码?
如遇下载链接蓝奏网盘打不开lanzous替换成lanzoux尝试! 广告

彻底清除PbootCMS 中的恶意 JavaScript(JS)代码,不能仅靠简单的文件删除,因为恶意代码往往具有隐蔽性(混淆加密)、持久性(自动再生)和多源性(存在于文件、数据库或缓存中)。
以下是基于安全最佳实践的标准化清理流程,分为定位、清理、修复、加固四个阶段。
第一阶段:精准定位恶意 JS 来源
恶意 JS 通常不会独立存在,而是依附于正常文件或通过动态加载注入。请重点排查以下三个位置:
1. 静态资源文件(最常见)
目标目录:/static/js/、/template/你的模板/js/。
特征识别:
文件末尾追加:打开正常的 .js文件(如 jquery.min.js, common.js),检查文件末尾是否有大段无意义的乱码、eval()、base64_decode() 或指向陌生域名的 document.write/window.location。
文件大小异常:对比官方原版文件,如果某个 JS 文件体积突然变大几 KB 甚至几十 KB,极可能被注入了代码。
外部引用:在 HTML 模板中搜索 <script src=,检查是否引入了非本站或非可信 CDN 的 JS 文件(如 http://恶意域名/hook.js)。
2. 模板 HTML 文件
目标文件:/template/ 目录下的 .html 文件,特别是 header.html、footer.html、index.html。
特征识别:
在 <head> 或 <body> 标签内嵌入了隐藏的 <script> 标签。
存在不可见的 <iframe> 标签,宽高设为 0,用于加载恶意页面。
标题(Title)、关键词(Keywords)被篡改为博彩或色情相关词汇,并伴随 JS 跳转代码。
3. 数据库内容(动态注入)
目标表:ay_content(文章内容)、ay_config(系统配置,特别是底部版权、统计代码字段)。
特征识别:
攻击者通过后台漏洞或弱口令登录,在“统计代码”、“底部信息”或某篇文章中插入 <script>…恶意代码…</script>。
前端渲染时,这些代码会被浏览器执行。
4. 运行时缓存
目标目录:/runtime/。
注意:PbootCMS 会编译模板生成缓存文件。如果源文件被改,缓存文件也会包含恶意代码;反之,有时源文件已清理,但缓存未更新,导致恶意代码依然生效。
第二阶段:彻底清理与恢复
核心原则:不要尝试手动修补被严重篡改的核心文件,直接使用官方纯净版覆盖。
步骤 1:隔离与备份
停止网站服务或开启维护模式,防止用户访问期间继续遭受劫持。
完整备份当前站点文件和数据库到本地(作为证据保留,勿直接在服务器上操作)。
步骤 2:清理静态 JS 文件
方案 A(推荐):官方覆盖法
从 PbootCMS 官网下载与当前版本一致的纯净安装包。
解压后,将 /static/js/ 目录完整上传并覆盖服务器上的对应目录。
如果你使用了默认模板,直接覆盖 /template/default/ 目录。
注意:如果你进行了二次开发(修改了 JS 逻辑),请先用 Diff 工具对比官方文件和你当前的文件,只删除被追加的恶意片段,保留你的自定义代码。
方案 B:手动清理法
使用文本编辑器打开可疑 JS 文件。
定位到恶意代码段(通常在文件最后,或以 eval(function(p,a,c,k,e,d)… 开头)。
删除该片段,保存文件。
务必检查:确保没有遗漏其他被感染的 JS 文件。
步骤 3:清理模板 HTML
打开 /template/ 下的主要 HTML 文件。
搜索 <script、<iframe、eval(、base64 等关键词。
删除所有非你主动添加的陌生脚本标签。
恢复被篡改的 <title>、<meta name=”keywords”>、<meta name=”description”> 为正确的 PbootCMS 标签:
html
<title>{pboot:sitetitle}</title>
<meta name=”keywords” content=”{pboot:sitekeywords}”>
<meta name=”description” content=”{pboot:sitedescription}”>
步骤 4:清理数据库
登录数据库管理工具(如 phpMyAdmin)。
执行 SQL 查询,查找包含恶意特征的记录:
sql
— 查找内容表中包含 script 标签的记录
SELECT id, title, content FROM ay_content WHERE content LIKE ‘%<script%’ OR content LIKE ‘%eval(%’;
— 查找配置表中的异常统计代码或底部信息
SELECT * FROM ay_config WHERE value LIKE ‘%<script%’ OR value LIKE ‘%http://恶意域名%’;
手动编辑这些记录,删除恶意代码片段。
重置后台管理员密码:防止攻击者再次登录植入代码。
步骤 5:清除缓存(关键)
清理完文件和数据库后,必须删除 /runtime/ 目录下的所有文件和文件夹(除了 .gitignore 等必要隐藏文件)。
bash
rm -rf /path/to/your/site/runtime/*
这将强制 PbootCMS 重新生成干净的模板缓存。
第三阶段:阻断再生与加固
如果不清除入侵入口,恶意 JS 会在几小时或几天后再次出现。
1. 修复入侵入口
升级系统:立即升级到 PbootCMS 最新版本,修复已知的 XSS、文件上传或 SQL 注入漏洞。
检查上传目录:确保 /uploads/、/static/ 目录禁止执行 PHP。
Nginx 配置示例:
nginx
location ~*^/(uploads|static)/.*\.php$ {
deny all;
return 403;
}
修改后台路径:将 admin.php 重命名为复杂名称(如 my_admin_x9z.php),并限制后台登录 IP。
2. 设置文件权限
核心文件只读:将 /apps/、/core/、/config/ 目录及其下文件权限设为 555(只读+执行,不可写)。
可写目录限制:仅 /data/、/runtime/、/uploads/ 需要写入权限,设为 755,严禁设为 777。
JS/CSS 文件保护:如果可能,将 /static/ 目录下的文件也设为 555,防止被在线篡改。
3. 部署 WAF 与监控
启用 WAF:使用宝塔 WAF、云锁或 Nginx Lua 防火墙,拦截包含 eval(、base64_decode(、<script> 等特征的 POST/GET 请求。
文件完整性监控:部署工具监控关键目录(如 /static/js/、/template/)的文件变更。一旦发现有文件被修改,立即告警并自动还原。
第四阶段:验证清理效果
无痕浏览测试:使用浏览器的“无痕模式”访问网站,查看网页源码(Ctrl+U),搜索恶意域名或关键词,确认已消失。
控制台检查:打开浏览器开发者工具(F12),切换到 Console 和 Network 面板,刷新页面,观察是否有加载陌生的 JS 文件或报错。
多端测试:分别在 PC 端和手机端访问,确认没有针对特定 User-Agent 的跳转行为。
搜索引擎快照:使用百度站长平台或 Google Search Console 的“URL 检查”工具,抓取首页,确认返回的内容是干净的。
总结
步骤 关键动作 目的
1. 定位 扫描 JS 文件末尾、HTML 头部、数据库配置字段 找到恶意代码藏身之处
2. 清理 官方纯净版覆盖 JS/模板目录 + 删除 Runtime 缓存 彻底移除已知恶意代码
3. 修复 升级 PbootCMS + 封堵上传目录 PHP 执行权限 关闭入侵大门
4. 加固 核心文件设为只读 + 部署 WAF + 监控文件变更 防止恶意代码再次写入
特别提醒:如果清理后恶意 JS 反复出现,说明服务器上可能存在持久化后门(如 Crontab 定时任务、内存马、或被篡改的 Nginx 配置)。此时建议联系专业安全人员进行服务器级别的深度排查,或考虑重装服务器环境。
NOTICE:【咨询风格酷】客服微信:wwwxmamcn
NOTICE:【风格酷模板网②群】QQ群:288678775
☉免责声明:本站所有模板均来自用户分享和网络收集,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服,我们核实后会立即删除。
☉如果源码网盘地址失效!或有其他问题,请点我报错,谢谢合作!
☉人民币与积分汇率为1比10,即1元=10积分.有任何疑问请联系客服!
☉如有其他问题,请加网站客服QQ(1131734965)进行交流。
☉本站提供的源码、模板、软件工具等其他资源,都不包含技术服务,请大家谅解!
☉源码、模板等资源会随着技术、环境的升级而存在部分问题,还请慎重选择。