15 常见漏洞 密码找回漏洞
转载文章: https://cloud.tencent.com/developer/article/1694570
月师傅讲解的密码找回漏洞我觉得并不是很全面
所以我去查了一些资料希望把这个大的逻辑漏洞的板块写全面点
以下大部分东西都是抄的
密码找回漏洞:可以修改他人的密码甚至管理员的密码就叫密码找回漏洞
漏洞寻找流程:
首先尝试正常找回密码的流程,选择不同的找回方式,记录所有数据包
分析数据包,找到敏感部分
分析后台找回机制所采取的验证手段
修改数据包验证推测
可能产生漏洞的情况
验证码有效期内可爆破或者请求次数没有限制
直接将验证内容返回给用户,如token(月师傅讲解的就是这个方案)
找回密码功能进行身份验证内容未加密或加密算法较弱
对用户身份的验证在前端进行,导致抓包绕过
在最后一步修改密码时没有校验账号是否通过了验证
手段
用户凭证暴力猜解
用户凭证太弱,如四位或六位的纯数字
即使不知道也可以爆破猜解
返回凭证
url返回验证码以及token(找回密码凭证发到邮箱中,url中包含用户信息以及凭证,但是这个凭证可以重置任何用户)
密码找回凭证在页面中(密保找回密码的答案在源代码中)
返回短信凭证
邮箱弱token
时间戳 md5
用户名
服务器时间
重新绑定
可以让任意用户绑定上自己可控的手机号
服务器验证
最终提交步骤
服务器验证可控内容(在最后重置密码出跟随一个用户ID,改成其他用户ID,即可修改其他用户的密码)
跳过步骤
可以直接跳到设置新密码的页面
本地验证
发送短信的验证信息在本地进行,可以通过修改返回包控制发送验证码的手机
在本地验证服务器的返回信息,确定是否执行重置密码,但是对其返回的信息是可控的内容,或者可以得到内容
(密码找回凭证在客户端获取,在密码找回时注意抓包查看所有url返回响应,看是否有最终的凭证出现,这样就可以绕过手机或者安全邮箱了)
注入
查看是否存在sql注入
Token生成
Token生成前端可控
注册覆盖
注册重复的用户(比如注册A,返回用户已经存在,把已经存在的状态改为可注册,填写信息提交注册,就可以覆盖A账号)
验证码未绑定用户
输入自己的手机号接受验证码,提交时拦截包,把自己的改为其他人的账号进行测试,成功重置他人的密码

浙公网安备 33010602011771号