本片文章仅供学习使用,切勿触犯法律!
概述
总结了逻辑漏洞之任意账号密码重置的相关内容。重点介绍了这种类型的漏洞的原理、危害以及具体的利用方法。文章提出了一些通用的修复建议,供大家参考学习。
重置密码本身没有问题i,但是在重置密码中的验证机制不够完善。其产生的原因多种多样,最主要的原因是网站有逻辑上的漏洞,即没有做到用户、账号、验证码三者统一进行验证。
一般重置密码流程:
总结为3步:
1. 输入要重置的用户名/账号向该用户绑定的手机号、邮箱等发送验证码
2. 操作者输入验证码,证明自己是用户本人
3. 获得修改密码权限
繁琐的步骤核心目的是确认当前的操作者是该用户本人。那么就有四个因素特别重要,分别是:操作者、用户账号、用户凭证、当前步骤。这四个因素需要相互验证,在重置流程中,任何因素缺示都有可能被利用。
导致用户账号丢失、信息丢失、财产损失等,对企业来讲,任意账号重置的漏洞将会丢失大量数据,失去用户信任,严重妨碍企业业务,带来巨大的财产损失。
1. 任意账户密码重置
1. 描述
该漏洞存在于用户重置密码一般流程的各个环节。
2. 挖掘
1. 验证码可爆破
2. 短信验证码显示在获取验证码请求的回显中
3. 注册手机号及短信验证码未进行匹配性验证
4. 用户名、手机号码、短信验证码三者没有进行匹配性验证
5. 验证码的验证在本地客户端进行验证
6. 重置步骤未进行校验
7. 重置请求未验证身份
8. 登陆成功修改密码功能平行越权
9. 未校验身份信息的唯一标识cookie信息
10. MVC数据对象自动绑定漏洞
3. 利用
略
根据以上的挖掘方法,不难得出相应的防范方法