前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >dedecms5.7 sp2前台修改任意用户密码

dedecms5.7 sp2前台修改任意用户密码

作者头像
tnt阿信
发布2020-08-05 10:14:50
1.9K0
发布2020-08-05 10:14:50
举报

dedecms5.7 sp2前台修改任意用户密码

前言

其实这个漏洞出来有一段时间了,不算是一个影响特别大的漏洞,毕竟dede是一个内容管理系统,用户这一块本来就基本没有用。该漏洞的精髓就是一个弱类型的比较:'0.0'=='0'

漏洞版本

该漏洞出现在最新版的dede上,我复现的版本是v5.7 sp2 utf8版本

mark

漏洞影响

允许用户修改任意前台用户的密码,不能对管理员账户造成影响,毕竟管理员账户与前台用户的数据表时分开存放的。而且,前台也不能直接登录管理员账户

漏洞利用条件
  1. 开启会员模块
  2. 攻击者拥有一个正常的会员账号
  3. 目标没有设置安全问题

由于dede默认是没有开启会员功能的,也就是我们不能注册用户,所以要复现该漏洞需要自己开启。请大家自行搜索开启

漏洞复现

首先我先注册两个用户吧 攻击者:000001 密码:123 受害者:test 密码:123 由于dedecms注册用户需要审核,我这里是本地搭的,我直接在数据库里更改一下就行了。

mark 把-10改为0

代码语言:javascript
复制
update dede_member set spacesta=0 where mid=3

执行了该语句你注册的用户就相当于通过了审核了。 现在我们的目标就是把test用户的密码更改为hacker 第一步: 在登录000001用户的前提下,请求

代码语言:javascript
复制
http://{yourwebsite}/member/resetpassword.php?dopost=safequestion&safequestion=0.0&id={userid}

通过burp抓包,并把这个请求发送的repeater中,可以看到返回的包中有一个链接

mark 我们直接访问该链接就可以看到一个更改密码的页面:

mark 我们把密码改为hacker,然后试着登录下

mark 成功利用!下面我们具体来看看漏洞产生的原因

漏洞分析

问题出现在resetpassword.php文件的75行处。

mark 这里的代码大概意思就是把我们传过去的安全$safequestion以及$safeanswer与数据库中一开始用户设定的safequestion与safeanswer是否匹配,如果匹配则可以往下进行,相当于验证密保问题。我们要做的就是绕过这里的判断,因为我们这个攻击成功的前提就是用户没有设置密保问题,所以在数据库中safequestion的值如下图:

mark 这里需要做的主要是绕过对safequestion的判断,对safeanswer的判断不需要我们绕过,本身就是满足的。我们可不可以直接传一个safequestion=0过去呢?答案是不行的,因为0在php中empty测试时会返回true。所以我们需要绕过的还有empty这个函数 所以我们直接令safequestion=0.0,0.0可以绕过empty检查,而且由于if判断里面的比较是弱类型比较

代码语言:javascript
复制
0.0 == 0
//true

这样我们就会执行sn函数了,继续追踪一下吧,位于dedecms\member\inc\inc_pwd_functions.php

mark

默认状态下,临时密码的表为空。所以会进入第一个判断,我们去看看newmail函数都做了什么吧。

mark 主要代码我已经用红框圈出来了,第二个红框中的链接也就是最后修改密码链接,只要拿到它我们就可以改密码了。获得这个链接需要通过抓取返回包。

总结

整个流程大概就到这了,可以很清晰的看到该漏洞就是由于那个弱类型的比较,通过构造请求我们可以控制mid(越权),mid也就是不同用户的编号,所以我们可以更改几乎所有用户的密码,只是还不能对管理员做什么。当然这个漏洞结合另外一个dede漏洞可以更改管理员的密码,后续将会进行复现

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一个安全研究员 微信公众号,前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • dedecms5.7 sp2前台修改任意用户密码
    • 前言
      • 漏洞版本
        • 漏洞影响
          • 漏洞利用条件
            • 漏洞复现
              • 漏洞分析
                • 总结
                相关产品与服务
                数据库
                云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档