逻辑漏洞-密码重置漏洞总结

释放双眼,带上耳机,听听看~!

1. 验证码不失效

原理:

验证码不失效是多年前最常见的一种逻辑漏洞,其原理是找回密码判断时,仅判断验证码是否正确,没有对验证码的过期时间进行限制,导致可以进行爆破。

测试方法:

通过枚举验证码直到找到真正的验证码跳转更改密码页面

2. 验证码回显

原理:

验证码回显是指发送验证码后,可以通过抓包等方式得到正确的验证码,直接填写验证码跳转更改密码页面。

测试方法:

通过截断数据包分析验证码是否直接写在cookie或者其他的字段中,如果捕获到,就可以直接填写。

3. 验证码不绑定用户

原理:

输入手机号和验证码进行重置密码的时候,仅对验证码是够正确进行了判断,未对该验证码是否与手机号匹配做验证。

测试方法:

在提交手机号和验证码的时候,替换手机号为其他手机号进行测试,成功通过验证并重置其密码

4. 用户名未绑定邮箱号/手机号

原理:

用户名、手机号、验证码三者没有统一进行验证,仅判断了三者中的手机号和验证是否匹配和正确,如果正确则判断成功并进入密码修改界面。

测试方法:

输入用户名获取验证码,通过抓包修改接收验证码的手机号为自己的号码,自己手机成功接收验证码,提交到网站进行验证,验证成功并进入密码修改界面

5. 客户端验证绕过

原理:

客户端在本地进行验证码是否正确的判断,主要是根据接收到验证成功或验证失败的包判断是否验证成功,而该判断结果也可以在本地修改,最终导致欺骗客户端,进入密码修改界面。

测试方法:

重置目标用户,输入错误验证码,修改返回包,把返回错误信息的包改为返回正确信息的包,即可绕过验证步骤,最终重置用户密码。

6. 跳过身份检验

原理:

信任域问题,用户输入验证码,直接跳转到设置新密码的这一步,服务器默认已经通过检验,值得信赖,于是便未再次作检验,就可以直接重置密码。

测试方法:

使用一个已知验证码账户记录每一步的链接,然后重置他人账户,点击获取验证码步骤之后直接手动控制网址跳转到输入新密码界面,重置其密码。

7. 修改新密码时未校验用户字段

原理:

在重置密码界面,没有再次对用户ID进行校验,导致提交参数时可以将用户ID更改,从而修改其他用户的密码。

测试方法:

使用自己账号和自己手机号进行密码重置,在最后重置密码时,抓包修改用户id相关信息,修改他人密码。

8. cookie替换

原理:

重置密码时通过用户cookie判断用户是否通过了手机验证,而cookie值是用户可控的,可以通过修改cookie中的值欺骗服务器自己通过了验证来修改密码。

测试方法:

是用自己账号和手机号进行密码重置,在重置密码时,将cookie提取出来分析,如果服务器通过cookie判断是否通过手机验证,就使用他人账号进行重置,然后将cookie中判断是否通过验证的值改为已通过状态,即可重置密码

9. 利用CSRF漏洞重置密码

原理:

如果登陆状态可直接修改密码,且密码修改的请求没有验证token、referer也没有设置跨域权限。

测试方法:

用自己账号重置密码,在修改密码部分将请求截断,然后伪装链接发给他人,受害者在登陆状态误点链接即会被修改密码

相关文章

人已赞赏
安全教程

中国科大IPv6应用实践

2020-3-5 2:01:29

安全教程

利用Metasploit+Nmap简单几步进行渗透网络服务器,直接获取管理权限

2020-3-10 15:21:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索