【转】

1.伪造请求(未注册的情况下)

在请求密码修改的过程中,修改账号的手机或邮箱等联系方式,在接受到验证码后进行密码修改。12

 

 
修改了接受密码手机,并且通过对账户类型的修改绕过边界。

2.使用正常账户请求修改获取token

 1. 爆破(绕过次数验证)12

 

原因:验证码过于简单,并且没有对请求修改次数做出限制。 
 
原因:虽然设置了请求阀值,但被猜解除了验证方式,病找到了绕过方式,验证码为4-5位的数字容易爆破

 2. 猜解12

 

原因:使用了特定值的加密作为token,被猜解到使用了时间戳的MD5值。在实际过程中我们也可以尝试用户名,手机,邮箱,等等的不同加密方式。

 3. 在客户端寻找token信息12

 

原因:没有严格控制token,在返回的url中发现token信息 
 
原因:找回密码问题的答案在页面源码中可以看到……

3.通过验证提交修改请求时存在的漏洞

  在请求过程中修改用户uid12

 

 
原因:没有管理好token和用户间一对一的关系,导致在最后提交请求的过程中修改了uid导致任意用户密码重置。

4.边界绕过特殊案例

 

过程:注册过程的绑定手机页面用过参数修改,将任意账号绑定至可控手机,在通过密码找回流程找回

以上资料均来自乌云知识库~

将回答密码找回问题的参数删除,服务端竟然通过了

重置密码时填入其他人的ID

重置密码时填入其他人的手机号

重置密码时填入其他人的邮箱

发送重置密码验证码时填入自己的手机号

发送重置密码链接时填入自己控制的邮箱

进入密码重置流程,获取cookie之后,将需要重置的目标账号等信息填写为其他人的

进入密码重置流程,获取cookie之后,可直接访问密码修改链接

进入密码重置流程,获取验证码之后,通过走别人的密码重置流程,用来重置别人的密码

重置密码过程中,修改步骤(stop)参数,绕过校验,直接进入系统

前端做校验,直接拦包修改服务端返回码即可绕过

用别人的账号重置密码,修改服务端返回的手机号为自己的手机号,使得自己接收到验证码

重置账号输入点存在SQL注入

用自己的账号进行重置密码,在收到正确cookie后,将标识用户账号的参数改写为其它人的账号

【覆盖】注册一个和现有用户名一样的用户,直接把密码改了,信息却还是老用户的

同一浏览器内,用户A走重置密码流程到接收到重置密码链接,用户B走重置密码流程到接收到重置密码链接,用户A点击重置密码链接,进入到对用户B的密码重置流程

验证码为4至6位数字,爆破

验证码直接在链接里出现

重置密码用的加密串不用验证就能获得,在输入验证码前就可以得到

找回密码的答案竟然在HTML里返回了

手机验证码竟然直接返回给了浏览器

重置密码认证信息用时间戳md5运算后做token,用两个账号走重置密码流程做对比可以发现该漏洞

【绑定手机】通过修改链接中的uid将其他人的密码找回手机绑定成自己的手机

越权修改其他人的密码找回手机