渗透实战: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域名写以便于进行安全测试。
![在这里插入图片描述](https://img-
blog.csdnimg.cn/8d95f9562c76433ca3f533d912571345.png#pic_center)
二、安全测试
1、信息收集
在拿到一个站点的第一步肯定是进行一个信息收集,它是整个渗透测试的基础。信息收集的目的是为了获取目标网络或系统的相关信息,包括IP地址、域名、操作系统、开放端口、应用程序、网络拓扑、用户信息、源码泄露等,以便于渗透测试人员对目标进行深入分析和攻击,如确定目标,定位漏洞,分析目标网络,确定攻击方式等等。
由于是本地搭建环境复现,此处就不进行常规的CDN绕过、WAF、蜜罐识别、子域名收集等操作。
端口扫描
目录扫描
2、漏洞确定
通过泄露的robots.txt文件得到前台登录的账户名test1
通过泄露的web.zip文件得出相关线索
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-
uAWBtZym-1683292270413)(安全测试:dedecms.assets/image-20230504203002371.png)]](https://img-
blog.csdnimg.cn/413702f558bf441da5e9f375228d82ad.png)
通过泄露的得出dedeCMS版本信息
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-
JOZcfsCG-1683292842663)(安全测试:dedecms.assets/image-20230504203247097.png)]](https://img-
blog.csdnimg.cn/b5ca5f14f50b4b35b5a216ec5171b9e9.png)
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
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。