渗透实战:dedeCMS任意用户密码重置到内网getshell
一、简介
DedeCMS 是一个基于 PHP 和 MySQL 的开源 CMS 系统,它是国内很多网站使用的 CMS 系统之一。在使用 DedeCMS
的过程中,我们需要重视其安全性,因为安全问题可能会导致网站数据泄露、网站被黑、系统被入侵等严重后果。本文将介绍如何进行 DedeCMS 安全测试。
1、环境准备
为了进行 DedeCMS 安全测试,我们需要准备以下环境:
- 一台安装了 PHP 和 MySQL 的服务器;
- DedeCMS V5.7 SP2正式版 安装包;
- 一些常用的安全测试工具,如:Burp Suite、Nmap、御剑 等。
2、安装 DedeCMS
首先,我们需要安装
DedeCMS,用于本地复现。这可以参考官方文档或者其他教程来完成。在HOSTS文件将虚拟机IP映射到dede.com域名写以便于进行安全测试。
二、安全测试
1、信息收集
在拿到一个站点的第一步肯定是进行一个信息收集,它是整个渗透测试的基础。信息收集的目的是为了获取目标网络或系统的相关信息,包括IP地址、域名、操作系统、开放端口、应用程序、网络拓扑、用户信息、源码泄露等,以便于渗透测试人员对目标进行深入分析和攻击,如确定目标,定位漏洞,分析目标网络,确定攻击方式等等。
由于是本地搭建环境复现,此处就不进行常规的CDN绕过、WAF、蜜罐识别、子域名收集等操作。
端口扫描
目录扫描
2、漏洞确定
通过泄露的robots.txt文件得到前台登录的账户名test1
通过泄露的web.zip文件得出相关线索
通过泄露的得出dedeCMS版本信息
3、漏洞利用
3.1重置用户密码
通过web.zip中mysql_config.txt中的提示和ver.txt泄露的版本信息寻找相关Nday
得出该版本为DedeCMS V5.7 SP2正式版,存在任意用户密码重置漏洞
利用点在后台的用户重置密码,再通过web.zip泄露的源码中得到其中一个已存在的用户名为test1来重置该用户密码
注:这里要选择-通过安全问题取回,其中没有设置安全问题的用户会利用失败
使用BP抓包,点击-下一步,蒋截获的请求包发送到重发器模块以便于查看响应包,原来的包DROP掉,不然会触发二次请求导致利用失败
使用此payload,将原来的POST请求内容替换,其中的&vdcode=xxx&type=xxx不用替换</