忘记密码界面:
任意密码重置概要:
1.重置一个账户,不发送验证码,设置验证码为空发送请求。
2.发送验证码,查看相应包
3.验证码生存期的爆破
4.修改相应包为成功的相应包
5.手工直接跳转到校验成功的界面
6.两个账户,重置别人密码时,替换验证码为自己正确的验证码
7.重置别人密码时,替换为自己的手机号
8.重置自己的成功时,同意浏览器重置别人的,不发验证码
9.替换用户名,ID,cookie,token参数等验证身份的参数
10.通过越权修改他人的找回信息如手机/邮箱来重置
用户凭证暴力破解(验证码)
绕过的话,这里可以考虑一个现状:
例如:**phone=18888888888abc国内很多情况下都没有过滤字符和限制输出长度,验证很有可能只是简单的处理只要更换手机号后面的字符,就可以绕过请求过于频繁的限制**但是校验时,手机号后面的字符会被过滤,也就是可以利用暴力破解验证码(不计入次数)所以只要在暴力破解的同时,改变手机号后面的字符即可达到漏洞效果根据手机号找回密码,但是验证次数被限制,抓包可以尝试在手机号后面添加不为数字的字符,查看是否过滤根据手机号找回密码,随便输个验证码,抓包暴力破解验证码(假如只有四位),很快就可以破解出来四位或六位纯数字,验证码次数未限制例如:如果验证码次数限制,破解一会就会提示请求过于频繁,这时就需要绕过限制例如:通过密保问题找回密码,查看源码,密保问题和答案就在源码中显示
返回凭证(验证码 及 token)、邮箱弱 token、用户凭证有效性、重新绑定
抓包,可以发现返回的数据中有一个加密的字符串(token),先记录下这个加密字符串
继续按照正常流程,登录邮箱获得验证码,返回填写验证码后,进入下一个填写新密码页面,发现 URL 后新增了一个加密验证的字符串
这个字符串就是之前数据包中记录的字符串,所以邮箱验证码这个环节可以绕过,直接用他人邮箱抓包获得加密字符串就可以重置他人密码