渗透实战:dedeCMS任意用户密码重置到内网getshell

这篇具有很好参考价值的文章主要介绍了渗透实战:dedeCMS任意用户密码重置到内网getshell。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

渗透实战: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域名写以便于进行安全测试。

dedecms getshell,安全测试,网络安全,安全,web安全

二、安全测试

1、信息收集

在拿到一个站点的第一步肯定是进行一个信息收集,它是整个渗透测试的基础。信息收集的目的是为了获取目标网络或系统的相关信息,包括IP地址、域名、操作系统、开放端口、应用程序、网络拓扑、用户信息、源码泄露等,以便于渗透测试人员对目标进行深入分析和攻击,如确定目标,定位漏洞,分析目标网络,确定攻击方式等等。

由于是本地搭建环境复现,此处就不进行常规的CDN绕过、WAF、蜜罐识别、子域名收集等操作。

端口扫描

dedecms getshell,安全测试,网络安全,安全,web安全

目录扫描

dedecms getshell,安全测试,网络安全,安全,web安全

2、漏洞确定

通过泄露的robots.txt文件得到前台登录的账户名test1

dedecms getshell,安全测试,网络安全,安全,web安全

通过泄露的web.zip文件得出相关线索

dedecms getshell,安全测试,网络安全,安全,web安全

通过泄露的得出dedeCMS版本信息

dedecms getshell,安全测试,网络安全,安全,web安全

3、漏洞利用

3.1重置用户密码

通过web.zip中mysql_config.txt中的提示和ver.txt泄露的版本信息寻找相关Nday

得出该版本为DedeCMS V5.7 SP2正式版,存在任意用户密码重置漏洞

利用点在后台的用户重置密码,再通过web.zip泄露的源码中得到其中一个已存在的用户名为test1来重置该用户密码

注:这里要选择-通过安全问题取回,其中没有设置安全问题的用户会利用失败
dedecms getshell,安全测试,网络安全,安全,web安全

使用BP抓包,点击-下一步,蒋截获的请求包发送到重发器模块以便于查看响应包,原来的包DROP掉,不然会触发二次请求导致利用失败

使用此payload,将原来的POST请求内容替换,其中的&vdcode=xxx&type=xxx不用替换

dopost=safequestion&id=1&userid=test1&safequestion=00&safeanswer=0&vdcode=embh&type=2

dedecms getshell,安全测试,网络安全,安全,web安全

访问响应包中得到的地址即可进入密码重置页面,注:其中的amp;实体编码要去掉

http://www.dede.com/member/resetpassword.php?dopost=getpasswd&id=1&key=7csIufED

dedecms getshell,安全测试,网络安全,安全,web安全

密码重置为123,重置成功

这个漏洞能利用任意用户重置管理员密码,毕竟id=1嘛😂😂😂

然后利用hejun这个账户去登录前台发现登录不上,原来是管理员账户,此CMS的管理员账户只能后台登录

将上面payload的id更改为2,尝试利用其他用户登录

dedecms getshell,安全测试,网络安全,安全,web安全

http://www.dede.com/member/resetpassword.php?dopost=getpasswd&id=2&key=4nDfzPyZ

dedecms getshell,安全测试,网络安全,安全,web安全

原来是test1的用户,重置密码为123,前台用户中心登录,这里可以用BP爆破其他可利用的用户名,id= 1 1 1

dedecms getshell,安全测试,网络安全,安全,web安全

进入前台用户中心,发现没有其他利用点,评论啥的都不能用,只有右下角欢迎新朋友这里可以进入其他用户空间

dedecms getshell,安全测试,网络安全,安全,web安全

这里test2,test3都访问不了,只有test4能访问

dedecms getshell,安全测试,网络安全,安全,web安全

dedecms getshell,安全测试,网络安全,安全,web安全

3.2未授权访问

发现URL中uid=test4很可以,尝试一下未授权访问,换个管理员的账户试试

http://www.dede.com/member/index.php?uid=test4&action=guestbook

啪的一下,也没啥利用点,留言板提示后台登录管理员账户

dedecms getshell,安全测试,网络安全,安全,web安全

3.3爆破后台

正常DEDECMS后台路径为/dede/login.php,这里的后台被修改了,尝试一下能不能爆破一下后台路径

百度无果,在github上看看有无可利用的工具,还挺多的,关键词dede 后台,找到了一个,地址放参考了(python2)

dedecms getshell,安全测试,网络安全,安全,web安全

得出后台管理路径

http://www.dede.com/hejunwebxxe/login.php

dedecms getshell,安全测试,网络安全,安全,web安全

进入后台登录界面,发现用户中心的管理员密码跟管理员在后台登录的密码不同,直接爆破,这里要配合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

启动脚本

dedecms getshell,安全测试,网络安全,安全,web安全

BP中导入xiapao插件

dedecms getshell,安全测试,网络安全,安全,web安全

接下来就是xiapao配合BP自动化识别证码来爆破用户密码

填入后台登录验证码地址,接口使用他接码地址(默认),选择验证码识别一,记得点击保存配置

dedecms getshell,安全测试,网络安全,安全,web安全

3.5爆破管理员密码

后台登录界面填入管理员账户名抓包发送到intruder模块,同时密码设置载荷,验证码处填入xiapao工具的识别特征码@xiapao@1@,线程设置为1,防止请求过快验证码识别不了

dedecms getshell,安全测试,网络安全,安全,web安全

得到密码admin888

dedecms getshell,安全测试,网络安全,安全,web安全

3.6getshell

进入后台,左边菜单栏中文件式管理器有个上传文件,这就上传个一句话木马😊

dedecms getshell,安全测试,网络安全,安全,web安全

使用蚁剑连接,getshell,拿到flag(编了俩次码)

dedecms getshell,安全测试,网络安全,安全,web安全

总结

DedeCMS是一款国产的开源CMS系统,具有使用简单、功能强大、可扩展性好等特点。然而,像其他CMS系统一样,DedeCMS也存在一些安全问题,其中任意密码重置漏洞是其中一个比较严重的漏洞。

通过信息泄露,攻击者可以获取到网站的用户的用户名和一些敏感信息,然后通过利用任意密码重置漏洞,在不知道原密码的情况下,重置管理员账号的密码,从而获取管理员权限。接着,攻击者可以通过后台getshell,获取网站的控制权,进而进行各种恶意操作,如上传恶意文件、篡改网站内容、窃取用户信息等。

为了避免这种安全问题的发生,在使用DedeCMS时,建议管理员及时升级DedeCMS版本,修复已知的漏洞。同时,建议管理员设置强密码、不要使用相同的密码、启用两步验证等措施,验证密码时添加一个token等手段,以提升管理员账户的安全性。此外,还需要加强对网站的监控,及时发现异常情况,并采取相应的措施,以保障网站的安全。文章来源地址https://www.toymoban.com/news/detail-738497.html

参考

https://xz.aliyun.com/t/9705#toc-0
https://github.com/AAHOne/dedecms
https://www.cnblogs.com/punished/p/14746970.html

到了这里,关于渗透实战:dedeCMS任意用户密码重置到内网getshell的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu 重置 root 用户密码

    前言 虚拟机用的时间久了登录系统的时候发现 root 密码忘记了, 所以在这里写一篇文章记录一下Ubuntu 系统下 root 密码忘记的解决方案,经过测试, 理论上来说这个方法适用于 Ubuntu 22.04 和 Ubuntu 18.04 以及 Ubuntu 16.04 等各种 Ubuntu 系统版本的系统来重置 root 用户密码,当前在 Ubuntu

    2024年02月08日
    浏览(34)
  • linux重置root用户密码

    第 1 步:重启系统编辑内核参数 第 2 步:找到 linux 这行,在此行末尾空格后输入rd.break  (End键也可直接进入行尾) 成功后显示页面为: 第 3 步:查看。可选(该步骤可省略) 命令为 :mount | grep sysroot 第 4 步:以读写方式挂载sysroot( 这里 sysroot 是以只读的形式挂载的,所

    2024年02月05日
    浏览(33)
  • Node编写重置用户密码接口

    目录 前言 定义路由和处理函数 验证表单数据 实现重置密码功能 前言 接前面文章,本文介绍如何编写重置用户密码接口 定义路由和处理函数 路由 处理函数 postman验证 需要在headers中添加请求头authorization,并且加上在登录时生成的token值 验证表单数据 定义验证规则对象并将

    2024年02月08日
    浏览(35)
  • 忘记gitlab的root用户密码(重置gitlab的root用户密码)

    目录 一、服务简介  二、解决思路 1、首先登录gitlab服务器执行以下命令:  2、通过命令查找,确定用户为“root” 3、将root用户密码重置为admin123! 4、保存重置信息,并结束          GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭

    2023年04月08日
    浏览(35)
  • 【linux】linux用户重置修改密码

    修改密码是操作系统最常见的操作。 linux操作系统,通过passwd 系统命令来修改密码。 其中普通用户只能修改自己用户的密码,如下: 但是root用户就不同了,root用户是管理员用户,权限顶格。 用root用户运行passwd修改当前用户的密码, passwd user_name可以设置或修改任何用户的

    2024年02月16日
    浏览(25)
  • @zabbix web登录忘记密码(用户密码重置及反解)

    zabbix部署后,使用默认的Admin账户登录 Admin/zabbix,新部署搭建的zabbix环境,密码都为Admin 假设: 1》web账户密码忘记了,且zabbix无存档,这是就把自己关外面了,无法进入到zabbix工作台里,这也是极端的 情况 2》管理员用户禁用登录,创建的普通用户,权限不够,无法操作所

    2024年02月15日
    浏览(25)
  • MySQL 5.7 重置root用户密码

    如果你忘记了 MySQL 5.7 的 root 用户密码,可以按照以下步骤来重置密码: 1、停止 MySQL 服务。 2、进入MySQL服务的安全启动模式 3、连接到 MySQL 服务器: 4、在 MySQL 命令行中重置 root 用户的密码 5 、关闭安全模式下的MySQL服务 杀掉mysqd_safe进程 6、启动MySQL服务 7、使用新密码登录

    2024年04月16日
    浏览(67)
  • Elasticsearch8重置elastic用户密码

    elastic可以说是es中预留的一个用户名,在按照官网yum安装方法安装启动后通过下面的方式测试是否正确运行 因为安装完成后自动开启了安全访问,所以必须要加 --cacert参数指定安装自动生成的认证文件,协议必须是https,但是结果返回了: 很纳闷,不知道为啥,既然是无法认

    2024年02月12日
    浏览(28)
  • VMware虚拟机忘记Linux用户登陆密码,重置密码解决办法

    VMware虚拟机安装Linux系统,忘记用户登陆密码怎么解决,可以通过重启VMware虚拟机进入系统操作界面去重置密码,重新修改密码。 下面是详细的操作步骤: 1、点击栏目上的倒三角形,选择重新启动客户机 2、等待重启虚拟机进度条出现,按下键盘E键,进入系统编辑界面 3、出

    2024年02月05日
    浏览(40)
  • RabbitMQ 重置用户名和密码的方法

    更改RabbitMQ登录帐号的密码 #进入RabbitMQ安装目录 cmd cd E:******sbin(修改成自己的RabbitMq下载目录,例如:E:RabbitMqrabbitmq-serverrabbitmq_server-3.11.6sbin) rabbitmqctl change_password guest 123456 补充一些其他的语法 管理命令 注意命令前面需要加一个rabbitmqctl 空格 #添加用户: rabbitmqctl.b

    2024年02月02日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包