3招免费工具教你识别DedeCMS防挂马
网站突然挂满黄色弹窗,后台进不去,数据被删?别慌,这通常是网站被黑后的典型症状。很多站长这时候第一反应是重装系统,但这往往治标不治本。要彻底解决这个问题,你得先搞清楚你的网站是用什么程序写的,特别是像 DedeCMS(织梦)这种老牌的 CMS 系统,因为它的默认配置漏洞多,是黑客最爱的“肥羊”。
今天咱们不聊虚的,直接上干货。怎么看出网站是 dede 做的?其实不用你懂代码,只要用对几个免费工具,两分钟就能摸清底细。这不仅是为了技术鉴定,更是为了排查安全风险。很多被挂马的站,根源就在于不知道自己是 DedeCMS,从而漏掉了针对该系统的专项安全加固。
需求分析:为什么必须识别 DedeCMS
很多新手站长,甚至是转行做网站的朋友,手里接了个烂摊子,或者自己维护着一个老站,发现网站速度奇慢,或者频繁出现异常跳转。这时候,第一步不是换服务器,也不是买杀毒软件,而是“验明正身”。
在东北老话里,这叫“先摸清家底”。你都不知道这房子是哪年盖的、用的什么砖,你怎么知道它哪儿漏风?DedeCMS 在国内企业站中存量巨大,但它架构老旧,PHP 代码规范差,容易留下后门。如果你不能准确识别出它是 DedeCMS,你就无法使用针对它的特定修复工具,比如 Dede 专用的一键修复脚本。
更重要的是,识别系统版本能帮你判断被黑的路径。黑客攻击 DedeCMS 通常利用的是未授权访问、SQL 注入或者后台插件漏洞。如果你通过免费工具确认了它是 DedeCMS 5.7 版本,那你就该重点查它的 include/ 目录和 admin/ 目录的权限设置。如果连系统类型都搞不清,盲目重装,黑客留下的 WebShell(网页后门)可能还在数据库里,重装完照样被黑。
另外,从合规角度看,虽然工信部ICP备案系统主要查主体资格,但备案信息中的“网站名称”和“服务内容”必须与实际运行程序相符。如果你备案的是“企业官网”,但实际跑的是带赌博接口的 DedeCMS 插件,那是违规的。识别清楚系统,才能确保网站内容符合备案承诺,避免被通信管理局关停。
环境准备:备好这几款免费工具
别被“工具”两个字吓住,咱们说的都是浏览器里就能跑的,或者是下载个绿色版就能用的免费工具,不需要你安装复杂的开发环境。
1. 浏览器开发者工具(F12) 这是最基础、最强大的工具。Chrome、Edge、Firefox 都自带。不用下载,按 F12 就行。它能看到网站的源代码、请求头、Cookie 信息。
2. Wappalyzer 或 WhatWeb 这俩是浏览器插件。Wappalyzer 是 Chrome 商店里的免费插件,装上后,你打开任何网站,地址栏旁边会显示一堆图标,其中就包括它检测到的 CMS 系统、服务器类型、前端框架。WhatWeb 是命令行工具,适合批量检测,但新手用 Wappalyzer 更直观。
3. 在线指纹识别平台(如 BuiltWith) 如果你不想装插件,可以直接用在线网站。输入网址,它会详细列出网站的技术栈。虽然部分高级功能收费,但基础的系统识别功能是免费的,足够咱们判断是不是 DedeCMS 了。
4. FTP 客户端(如 FileZilla) 如果你能登录服务器,FileZilla 是必装的。它是免费、开源的 FTP 客户端,用来查看服务器文件结构。很多时候,浏览器里看不出来的东西,直接看服务器文件目录一目了然。
准备这些工具的目的,是为了从“前端展示”和“后端文件”两个维度交叉验证。单一渠道容易误判,比如有些站改了后缀名,或者用了 CDN 缓存,前端看不出来,但后端文件结构暴露无遗。
核心步骤:三步锁定 DedeCMS 身份
下面这招,我教过几十个转行做网站的新手,基本百试百灵。咱们按顺序来,由浅入深。
第一步:看 URL 和页面源码
打开疑似 DedeCMS 的网站,按下 F12,切换到“Elements”(元素)选项卡,或者直接在源码里搜索关键字。
重点搜索这些字符串:
dedededecmsplus/templets/data/
如果你看到类似 <script src="/dede/plus/..." 或者 <!-- DedeCMS 5.7 --> 这样的注释,基本就实锤了。DedeCMS 的默认模板文件路径通常包含 templets/,而它的动态页面生成引擎位于 plus/ 目录下。
注意: 有些高手站长会隐藏这些信息,或者修改了文件路径。所以这一步只是初步判断,不能作为唯一依据。
第二步:检查 URL 参数特征
DedeCMS 生成的 URL 有一些非常独特的格式,这是它的“指纹”。
- 列表页: 通常是
/html/或/plus/list.php?tid=xx - 详情页: 通常是
/html/xx/xx.html或/show.php?arcid=xx - 搜索页:
/plus/search.php
如果你在地址栏看到 plus/list.php 或者 show.php?arcid=,哪怕页面源码被混淆了,这个 URL 结构也很难完全改掉,因为改了会导致大量内链失效。这是判断 DedeCMS 最硬的证据之一。
第三步:服务器文件结构验证(终极手段)
如果前两步都不确定,或者你想确认是否有被黑风险,直接连服务器。用 FileZilla 登录 FTP,查看网站根目录。
DedeCMS 的标准目录结构如下:
admin/或dede/:后台管理目录data/:数据库配置文件和缓存目录include/:核心功能库language/:语言包templets/:模板文件upload/:用户上传文件plus/:动态页面生成
如果你看到这些目录同时存在,尤其是 include/arc.class.php、include/arc.archives.class.php 这些核心文件,那绝对是 DedeCMS。
安全排查重点:
在 admin/ 或 dede/ 目录下,检查是否有非官方文件,比如 shell.php、test.php、xx.jpg(图片里藏后门)。在 upload/ 目录下,检查是否有可执行的 PHP 文件。这些都是黑客挂马后留下的典型痕迹。
代码/配置示例:快速检测脚本
为了让大家更直观,我写两段简单的检测代码。一段是浏览器控制台用的 JS,一段是 Linux 服务器用的 Bash 脚本。
示例 1:浏览器控制台快速检测(JavaScript)
打开疑似 DedeCMS 的网站,按 F12,切换到“Console”(控制台),粘贴以下代码并回车:
// 检测页面中是否包含 DedeCMS 特征字符串
(function() {var html = document.documentElement.outerHTML;var patterns = ['dedecms','dede','/plus/','/templets/','DedeAdmin'];var found = [];patterns.forEach(function(pattern) {if (html.toLowerCase().indexOf(pattern) !== -1) {found.push(pattern);}});if (found.length > 0) {console.log('%c[警告] 检测到 DedeCMS 特征: ' + found.join(', '), 'color: red; font-weight: bold;');// 进一步检查 URL 结构if (window.location.href.indexOf('plus/') !== -1 || window.location.href.indexOf('show.php') !== -1) {console.log('%c[确认] URL 结构符合 DedeCMS 特征', 'color: orange;');}} else {console.log('%c[提示] 未在 HTML 中直接检测到 DedeCMS 特征,可能已混淆或隐藏', 'color: blue;');}
})();
代码说明:
document.documentElement.outerHTML:获取整个页面的 HTML 源码。patterns数组:定义了 DedeCMS 的常见特征字符串。indexOf:判断字符串是否包含特征。console.log:在控制台输出检测结果,红色表示高度怀疑,蓝色表示未发现。
示例 2:服务器文件检测(Bash)
如果你有 SSH 权限,登录服务器,进入网站根目录,执行以下命令:
#!/bin/bash# 定义网站根目录,请根据实际情况修改
WEB_ROOT="/var/www/html"echo "开始检测 DedeCMS 特征文件..."# 检查核心目录是否存在
if [ -d "$WEB_ROOT/include" ] && [ -f "$WEB_ROOT/include/arc.class.php" ]; thenecho "[确认] 发现核心文件 include/arc.class.php,确认为 DedeCMS"
elif [ -d "$WEB_ROOT/dede" ]; thenecho "[确认] 发现 dede 目录,高度疑似 DedeCMS"
elseecho "[提示] 未发现典型 DedeCMS 核心文件"
fi# 检查后台目录
if [ -d "$WEB_ROOT/admin" ] || [ -d "$WEB_ROOT/dede" ]; thenecho "[信息] 发现后台目录"# 检查后台目录下是否有可疑的 PHP 文件(非官方文件)suspicious_files=$(ls -l "$WEB_ROOT"/admin/*.php "$WEB_ROOT"/dede/*.php 2>/dev/null | grep -v "config" | grep -v "login" | grep -v "index")if [ ! -z "$suspicious_files" ]; thenecho "[警告] 后台目录存在非标准 PHP 文件,请人工核查:\n$suspicious_files"fi
fi# 检查 upload 目录是否有 PHP 文件(高危)
php_in_upload=$(find "$WEB_ROOT/upload" -name "*.php" 2>/dev/null)
if [ ! -z "$php_in_upload" ]; thenecho "[高危] upload 目录中发现 PHP 文件,极大概率是 WebShell:\n$php_in_upload"
elseecho "[安全] upload 目录未发现 PHP 文件"
fi
代码说明:
-d和-f:分别判断目录和文件是否存在。include/arc.class.php:这是 DedeCMS 最核心的类文件,几乎不可能被改名,是判断的金标准。find命令:在upload目录查找所有.php文件。正常情况下,上传目录只应存放图片、文档,不应有 PHP 可执行文件。如果有,99% 是黑客植入的后门。
常见报错与排查误区
在实际操作中,新手常遇到几个坑,这里提前给你避避雷。
1. “我看源码里没有 dede 字样,是不是不是 DedeCMS?”
不一定。有些站长使用了代码混淆工具,或者将 dede 关键字替换成了其他字符串(如 cms、admin)。这时候,URL 结构和服务器文件结构就是唯一的真理。不要只信前端,要看后端。
2. “我用了 CDN,怎么判断?” CDN 会缓存页面,可能让你看到的源码是缓存前的旧版本。建议:
- 在 URL 后加随机参数,如
?t=12345,绕过缓存。 - 直接查服务器文件,最准确。
- 查看 HTTP 响应头,看
Server字段和X-Powered-By字段,虽然 DedeCMS 不一定暴露,但能辅助判断 PHP 版本。
3. “识别出是 DedeCMS 了,然后呢?” 识别只是第一步。接下来你要做的是:
- 备份:立刻备份整个网站和数据库。
- 排查后门:用上面的 Bash 脚本扫描
admin、upload、data目录。 - 修改密码:修改 FTP、数据库、后台管理员密码。
- 升级或加固:如果版本太老,建议升级到最新版 DedeCMS,或者打官方补丁。如果不想折腾,考虑迁移到 WordPress 或 Typecho 等更安全的 CMS。
4. “工信部ICP备案系统能帮我查这个吗?” 不能。工信部ICP备案系统主要查询网站的主体资格、备案号、接入商等信息。它不会告诉你网站是用什么程序写的。但备案信息是合规的基础,如果你的网站被黑挂了违法内容,导致备案被注销,那麻烦就大了。所以,识别系统、做好安全防护,也是维护备案有效性的一部分。
小结:从识别到防御的闭环
怎么看出网站是 dede 做的?其实没那么神秘。通过免费工具如浏览器 F12、Wappalyzer 插件、FileZilla 文件查看器,结合 URL 特征、源码关键字、服务器文件结构这三个维度,你就能准确识别出 DedeCMS 网站。
识别的目的,不是为了炫耀技术,而是为了安全。DedeCMS 虽然老,但依然有大量站点在运行。它的安全性取决于你的维护程度。如果你发现网站是 DedeCMS,请务必:
- 定期更新核心文件和补丁。
- 严格权限管理,禁止
upload、data目录执行 PHP。 - 监控文件变更,使用文件完整性监控工具。
- 备份、备份、再备份,这是最后的救命稻草。
网站被黑挂马,往往不是因为系统太烂,而是因为管理太松。识别出系统类型,只是安全运维的第一步。接下来,你要做的是像对待自己的孩子一样,定期体检、打疫苗、加固门窗。
你更倾向模板建站还是定制开发?欢迎评论。


