用户密码找回是什么意思(密码找回凭据是什么)
通过密码找回漏洞能重置目标的账号密码,使得安全人员/***能查看被黑用户的敏感信息。
注意测试密码找回漏洞时最好先走一遍整个找回的流程
注意跳转的链接和数据包里的内容
密码找回步骤一般分为4步:
安全认证,通常是输入账号 手机号 邮箱等身份校验,目标会下发验证码到接受端(手机或邮箱)密码重置,输入新密码成功重置密码找回逻辑含有用户标志(用户名、用户ID、cookie)、接收端(手机、邮箱)、凭证(验证码、token)、当前步骤等四个要素,若这四个要素没有完整关联,则可能导致任意密码重置漏洞。
第一类:重置密码的凭证下发客户端,导致重置凭证泄露W1
找回密码时,抓取返回包后可轻易获取作为重置凭证的验证码。
W2
用邮件找回密码时,抓取返回包后可轻易获取用于重置密码的链接。
如图从返回包中看到验证码是934456,手机接收的验证码也是如此;邮箱接受token同理。
第二类:所接受重置凭证的账号由目标网站是从客户端获得,该账号可以被修改导致任意密码修改。W3
请求包中包含接收端参数(接受验证码的手机或者邮箱号),通过修改该参数可将凭证发至指定接收端。
W4
请求包中没有可以直接修改的接收端相关参数,但是某些值间接影响接收端。
整个过程,并没有直接提交接受重置凭证的手机号或者邮箱号,而是提交需要重置密码的用户名,猜测是通过用户名查询接受端的账户,从而指定接收端。
可以尝试在第一步输入想重置的账户名,第二步抓包将用户名修改为自己的账号用来接收凭证。
比如要找回AAA的密码,在第一步安全认证中输入该账号,在第二步身份校验时抓包修改AAA为BBB。
第三类:cookie混淆W5
通过cookie混淆不同账号,实现重置任意用户密码在密码重置的过程中,几乎在数据包里看不到属于自己账户的特征(用户名或者ID),猜测和cookie里的某个值有关,假设其为A;
step1:
用攻击者账号进入密码找回流程,查收重置验证码、通过校验;
step2:
输入新密码后提交,burp抓包拦截;(这时攻击者的账号已和A绑定)
step3:
新开重置流程的首页,在页面中输入想重置的账户;(这时想重置的账户和A重新绑定)
step4:
burp放包,理论上密码已重置。
这个属于好做不好理解的那种,从网上扒了个例子:
step1:
打开密码重置链接http:xxxx/step_1.html
step2:
依次完成各个流程,来到第三步
step3:
重新打开http:xxxx/step_1.html,输入任意手机号
step4:
继续step2的流程,完成重置流程即可。
第四类:通过修改重置链接中的参数实现重置用户密码的目的W6
在接收到的重置连接中,有些参数与用户名或者id相关,通过修改这些参数达到重置任意用户密码的目的。
如图,这些参数多次测试发现于用户名有关,可以尝试修改达到任意用户密码重置的目的。
第五类 批量发送验证码批量爆破账号W7
很多网站在在验证环节如果输出三次验证码就会出现限制措施
比如限制时间或者重新发送验证码,这无疑给爆破验证码增添难度
那换个思路:
前提条件:
拥有目标网站大量账号(假设验证码是5位数字,验证码输错3次就会出现限制)
step1:
同时使用这些账号找回密码,这样就会有大量00000-99999直接的验证码被生成
step2:
随便指定一个符合规则的验证码比如66666去爆破账号,理论上而言,总会有一个账号是这个验证码
扫描下方二维码!
邀你进内部交流群,领靶场链接!工具!零基础体制化视频教程