简要描述:
忘记密码中的重置功能存在越权和逻辑缺陷,可更改任意账户登录密码
漏洞证明:
第一个是越权漏洞
注册登录后退出,打开忘记密码页面 https://www.oex.top/validate/reset_email.html
输入信息获取验证码后来到第二步 进行更改密码并抓包
其中fid参数存在越权,可更改其他账户登录密码
第二个漏洞是这里存在逻辑缺陷,重置一次密码后,仍然可以继续重置,后台存储的状态没有失效
两个漏洞组合起来就可以遍历大量发包来修改所有账户密码
继续变更一个用户,仍然可以
修复方案:
去掉fid参数,从session里获取fid
重置一次密码后便置于失效状态,需要重新进行第一步校验