app有一个忘记密码功能,流程如下
用户点击忘记密码---跳转至获取验证码页面获取并输入验证码---进入设置页面设置新密码
1、在获取验证码页面,首先输入手机号,获取验证码,然后输入验证码,点击下一步
2、进入设置密码页面,输入新密码,点击完成,即完成了密码的修改
输入新密码并点击完成这个动作,请求的后台接口changePwd.do,需要的参数仅为mobile(手机号)、newPwd(新密码)两个关键参数,除此之外,没有其他任何验证身份的参数。
因此,用户可以通过拦截changePwd.do这个接口的请求,然后修改手机号,达到修改任意账户密码的效果,有非常重大的安全漏洞。
解决方案,需要在changePwd.do这个接口增加用户身份校验,确认当前修改密码的用户与之前获取验证码的用户是否一致。
