• 【漏洞分析】dedecms有前提前台任意用户密码修改


     0x00 前言

    早上浏览sec-news,发现锦行信息安全发布了一篇文章《【漏洞分析】 织梦前台任意用户密码修改》,看完之后就想着自己复现一下。

    该漏洞的精髓是php的弱类型比较,'0.0' == '0',也有一定的限制,只对没有设置安全问题的用户有效(默认是没有设置的)。

    0x01 漏洞版本

    我复现的是DedeCMS V5.7 SP2正式版,2018-01-09发布的,其他的没测。应该算是最新版本的一个0day了。

    0x02 漏洞影响

    该漏洞允许攻击者修改任意前台用户密码。

    0x03 漏洞利用条件

    1,开启会员模块

    2,攻击者拥有一个正常的会员账号

    3,目标没有设置安全问题

    0x04 漏洞分析

    问题出现在/member/resetpasswordd.php  文件中。dedecms 用的是全局变量解析

    一步步看:

    这里先接受了一个id变量,用来查询用户。

    接下来看到

    这里是整个漏洞的核心所在,从数据库中获取safequestion,然后与传过来的数据进行判等。用的是双等号,又因为用户没有设置安全问题,数据库里面默认存的是0。

    通过php弱类型的转换'0.0' == '0'了。(内部运算:先是把0.0(浮点数(0.0)转换为int(0),然后字符串('0')转换为int(0),最后 0==0 ,所以相等了。)

    直接传0是不行的,因为前面有一个empty的判断,当然你也可以利用十六进制比如:0x0

     其内不转换和上面的是一样的。

    接下来跟进sn函数(记住这里我们的send默认为N)

    继续跟进newmail函数

    可以看到当send为N时,直接在前端页面返回了验证码。(而我们这里刚好默认就是N,见前文)
    又因为用户id是我们可以控制的,safequestion(默认情况)下可以绕过。

    那么也就达成了修改前台任意用户密码的效果。

    0x05 漏洞复现

    因为这里的模块属于会员模块,包含了member.login.class.php。需要登录才能操作。

    那么我先注册一个用户,担任攻击者,再注册另外一个用户担任目标。

    请求url应该是这样的:

    http://127.0.0.1/dedecms/member/resetpassword.php?dopost=safequestion&safequestion=0.0&id={userid}

    test为攻击者,用户id为2,密码:test。test1为目标,用户id为3,修改密码为:hacker

    下面就演示一下用test修改test1用户的过程。

    Step1: 登陆test用户

    Step2:发送请求url

    Step3:请求修改页URL:

    http://127.0.0.1/dedecms/member/resetpassword.php?dopost=getpasswd&id=3&key=Dj7PeiRm

    Step4:修改用户test1的密码为hacker

    Step5: 用修改之后的密码登陆进行验证

    验证成功。

    0x06  思考与总结

    虽然说整个漏洞的关键是那一处弱类型比较,也是php的特性与及开发人员对于特性的掌握不够全面所致。漏洞危害其实不太,dede多用于内容,没有什么用户交互而言。如果需要提供用户交流平台,大多数应该会用discuz。

    但我觉得对于用户的权限划分不明才是这个漏洞的根本,可以归根为越权。用户id竟然可以直接由用户控制传输,倘若通过session,那么就算用户安全问题没有设置,可以用弱类型比较,最后也仅限于修改自己的密码。

    php的弱类型一直是一个问题,特别是早期没有那么重视安全的时候。多少问题都是出在那里。

  • 相关阅读:
    web安全记录
    jquery uploadify插件多文件上传
    在java中生成二维码,并直接输出到jsp页面
    条形码/二维码之开源利器ZXing图文介绍
    FCKeditor插件开发实例:uploadify多文件上传插件
    FCKeditor 插件开发 示例
    Spring技术_邮箱注册_激活_获取验证码
    jquery的uploadify上传jsp+servlet
    PHP变量类型
    thinkphp环境变量配置
  • 原文地址:https://www.cnblogs.com/r00tuser/p/8268329.html
Copyright © 2020-2023  润新知