渗透实战: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不用替换
dopost=safequestion&id=1&userid=test1&safequestion=00&safeanswer=0&vdcode=embh&type=2
访问响应包中得到的地址即可进入密码重置页面,注:其中的amp;实体编码要去掉
http://www.dede.com/member/resetpassword.php?dopost=getpasswd&id=1&key=7csIufED
密码重置为123,重置成功
这个漏洞能利用任意用户重置管理员密码,毕竟id=1嘛😂😂😂
然后利用hejun这个账户去登录前台发现登录不上,原来是管理员账户,此CMS的管理员账户只能后台登录
将上面payload的id更改为2,尝试利用其他用户登录
http://www.dede.com/member/resetpassword.php?dopost=getpasswd&id=2&key=4nDfzPyZ
原来是test1的用户,重置密码为123,前台用户中心登录,这里可以用BP爆破其他可利用的用户名,id=
1
1
1
进入前台用户中心,发现没有其他利用点,评论啥的都不能用,只有右下角欢迎新朋友这里可以进入其他用户空间
这里test2,test3都访问不了,只有test4能访问
3.2未授权访问
发现URL中uid=test4很可以,尝试一下未授权访问,换个管理员的账户试试
http://www.dede.com/member/index.php?uid=test4&action=guestbook
啪的一下,也没啥利用点,留言板提示后台登录管理员账户
3.3爆破后台
正常DEDECMS后台路径为/dede/login.php,这里的后台被修改了,尝试一下能不能爆破一下后台路径
百度无果,在github上看看有无可利用的工具,还挺多的,关键词dede 后台,找到了一个,地址放参考了(python2)
得出后台管理路径
http://www.dede.com/hejunwebxxe/login.php
进入后台登录界面,发现用户中心的管理员密码跟管理员在后台登录的密码不同,直接爆破,这里要配合BP识别验证码。这里用到名为xiapao工具地址j及其使用方式放参考了(这里的脚本需要python低于3.7版本)
3.4安装xiapao
这款工具的安装有点麻烦,稍微介绍一下,这里建议都把工具都放同个文件夹再打开cmd
py -3.6 -m pip install --upgrade pip
py -3.6 -m pip install -i https://pypi.douban.com/simple/ pip install opencv-python==4.3.0.38
py -3.6 -m pip install muggle-ocr-1.0.3.tar.gz -i https://pypi.douban.com/simple
py -3.6 -m pip install opencv_python_headless-3.4.18.65-cp36-abi3-win_amd64.whl
py -3.6 -m pip install ddddocr -i https://pypi.tuna.tsinghua.edu.cn/simple
启动脚本
BP中导入xiapao插件
接下来就是xiapao配合BP自动化识别证码来爆破用户密码
填入后台登录验证码地址,接口使用他接码地址(默认),选择验证码识别一,记得点击保存配置
3.5爆破管理员密码
后台登录界面填入管理员账户名抓包发送到intruder模块,同时密码设置载荷,验证码处填入xiapao工具的识别特征码@xiapao@1@,线程设置为1,防止请求过快验证码识别不了
得到密码admin888
3.6getshell
进入后台,左边菜单栏中文件式管理器有个上传文件,这就上传个一句话木马😊
使用蚁剑连接,getshell,拿到flag(编了俩次码)
总结
DedeCMS是一款国产的开源CMS系统,具有使用简单、功能强大、可扩展性好等特点。然而,像其他CMS系统一样,DedeCMS也存在一些安全问题,其中任意密码重置漏洞是其中一个比较严重的漏洞。
通过信息泄露,攻击者可以获取到网站的用户的用户名和一些敏感信息,然后通过利用任意密码重置漏洞,在不知道原密码的情况下,重置管理员账号的密码,从而获取管理员权限。接着,攻击者可以通过后台getshell,获取网站的控制权,进而进行各种恶意操作,如上传恶意文件、篡改网站内容、窃取用户信息等。
为了避免这种安全问题的发生,在使用DedeCMS时,建议管理员及时升级DedeCMS版本,修复已知的漏洞。同时,建议管理员设置强密码、不要使用相同的密码、启用两步验证等措施,验证密码时添加一个token等手段,以提升管理员账户的安全性。此外,还需要加强对网站的监控,及时发现异常情况,并采取相应的措施,以保障网站的安全。
参考
https://xz.aliyun.com/t/9705#toc-0
https://github.com/AAHOne/dedecms
https://www.cnblogs.com/punished/p/14746970.html
版权归原作者 0xpnb 所有, 如有侵权,请联系我们删除。