密码找回逻辑漏洞总结
0x00 背景介绍
请注意这两篇文章:
距离上两篇文档过去近半年了,最近整理密码找回的脑图,翻开收集的案例,又出现了一些新的情况,这里一并将所有见到的案例总结并分享给大家,在测试时可根据这个框架挖掘!
0x01 密码找回逻辑测试一般流程
- 首先尝试正常密码找回流程,选择不同找回方式,记录所有数据包
- 分析数据包,找到敏感部分
- 分析后台找回机制所采用的验证手段
- 修改数据包验证推测
0x02 脑图
0x03 详情
用户凭证暴力破解
四位或者六位的纯数字 例子
返回凭证
url返回验证码及token 例子
密码找回凭证在页面中
通过密保问题找回密码 例子
返回短信验证码
例子
WooYun: 新浪某站任意用户密码修改(验证码与取回逻辑设计不当)
邮箱弱token
时间戳的md5 例子
用户名 & 服务器时间
WooYun: 中兴某网站任意用户密码重置漏洞(经典设计缺陷案例)
用户凭证有效性
短信验证码 例子
WooYun: 第二次重置OPPO手机官网任意账户密码(秒改)
邮箱token
例子
重置密码token
例子
WooYun: 魅族的账号系统内存在漏洞可导致任意账户的密码重置
重新绑定
手机绑定 例子
邮箱绑定
例子
服务器验证
最终提交步骤 例子
WooYun: 携程旅行网任意老板密码修改(庆在wooyun第100洞)
服务器验证可控内容
例子
WooYun: 四川我要去哪517旅行网重置任意账号密码漏洞
服务器验证验证逻辑为空
例子
用户身份验证
账号与手机号码的绑定
账号与邮箱账号的绑定
例子
WooYun: 魅族的账号系统内存在漏洞可导致任意账户的密码重置
找回步骤
跳过验证步骤、找回方式,直接到设置新密码页面 例子
WooYun: OPPO手机同步密码随意修改,短信通讯录随意查看
WooYun: 中国电信某IDC机房信息安全管理系统设计缺陷致使系统沦陷
本地验证
在本地验证服务器的返回信息,确定是否执行重置密码,但是其返回信息是可控的内容,或者可以得到的内容 例子
WooYun: 看我如何重置乐峰网供应商管理系统任意用户密码(管理员已被重置)
发送短信等验证信息的动作在本地进行,可以通过修改返回包进行控制
例子
注入
在找回密码处存在注入漏洞 例子
WooYun: 用友人力资源管理软件(e-HR)另一处SQL注入漏洞(通杀所有版本)
Token生成
token生成可控 例子
注册覆盖
注册重复的用户名 例子
WooYun: 中铁快运奇葩方式重置任意用户密码(admin用户演示)
session覆盖
例子
附脑图文件:密码找回漏洞挖掘.zip