漏洞概要
关注数(24)
关注此漏洞
漏洞标题:yuncart设计不当可重置任意用户密码
提交时间:2014-06-22 01:08
修复时间:2014-09-20 01:10
公开时间:2014-09-20 01:10
漏洞类型:设计缺陷/逻辑错误
危害等级:中
自评Rank:10
漏洞状态:未联系到厂商或者厂商积极忽略
Tags标签:
无
漏洞详情
披露状态:
2014-06-22: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-09-20: 厂商已经主动忽略漏洞,细节向公众公开
简要描述:
Yuncart 是一套易与集成的php开源商城系统,方便多人同时经行二次开发,Yuncart 可以以非常方便的方式切换到sql server,oracle等数据库
详细说明:
Yuncart 是一套易与集成的php开源商城系统,方便多人同时经行二次开发,Yuncart 可以以非常方便的方式切换到sql server,oracle等数据库
该商城系统在用户找回密码的地方采用的是弱认证,很容易就会被攻击者模拟出来,并且重置任意用户的密码。
问题出在:user.class.php 大约171行:
生成的找回密码链接是uid+key。key的生成方法是substr(md5($email.$time),8,8)。
也就是说截取了md5之后的用户邮箱+时间戳的后8位。
那么很容易就可以根据这个来编写对应的找回密码链接了。
漏洞证明:
这里我以官方的demo站点为例子,重置一个会员的密码:
会员id是5,根据这个情况。构造key值:
在找回密码的瞬间,记录下时间戳。顺便开始生成:
就是他了:
修复方案:
漏洞回应
漏洞评价:
评论