该图片出处是经典电影《教父》,大概是老柯里昂对长子桑尼说的,之后他已经把大权移交,还被对手暗杀,差点死掉
0x00 背景介绍
有人的地方就有江湖。
互联网中,有用户注册的地方,基本就会有密码找回的功能。
而密码找回功能里可能存在的漏洞,很多程序员都没有想到。
而这些漏洞往往可能产生非常大的危害,如用户账号被盗等。
并且这种漏洞在非常多的大互联网公司中都出现过。
这是乌云瞌睡龙几年前发的,我暂时摘抄一点。
一般的密码重置设计基本上是一下步骤:
- 申请找回,输入账号
- 验证码发送到关联的邮箱或者手机号
- 校对验证码
- 修改密码
0x01 密码找回逻辑测试一般流程
- 首先尝试正常密码找回流程,选择不同找回方式,记录所有数据包
- 分析数据包,找到敏感部分
- 分析后台找回机制所采用的验证手段
- 修改数据包验证推测
找回密码的方式一般有:
- 验证邮箱
- 短信验证码
- 密保答案
密保答案比较难猜解,除程序员直接放到网站上。
挖掘导图
0x02 实例演示
测试网站:某电商平台
验证码爆破
注册账号后,申请邮箱找回密码。使用临时邮箱或者一直都是自用的测试专用邮箱注册
填写邮箱和验证码后
点击获取校检码,
查看邮箱收到几位数的验证码
发现是4位,随便输入1234,burpsuit抓包查看,此时验证码为9704
使用bp的爆破
最后得出的payload和收到的一样。payload为9704和收到的一样。
输入正确的之后bp放行后就能改密码了。
短信验证码
还是本站测试,这次用手机验证码来测试。
由于个人信息不好在渗透测试中使用,所以想着绑定手机号的验证码也是抓包爆破方式,随便输入一个手机号,于是抓包爆破,绑定一个手机号。
bp抓包显示信息:
忘记当时什么原因没爆破出来
换个手机号爆破绑定成功后,申请手机号找回
抓包准备测试抓包测试验证码,猜测肯定都是4位验证。
爆破后,找到正确的
改包forward就转到修改密码的页面。
密保答案
密保答案找回密码难度比较大,得长期社工一个人,了解家庭生活兴趣爱好,才有可能通过此种方式吧。
我填的密保答案都是和问题不符的,谁知道会有什么乱七八糟的答案呢。
0x03 防御方法
代码能力有待加强,暂时想不到,代码层的问题。不能只增加次数时限限制,得从多处考虑逻辑问题避免被绕过
具体修复详情看瞌睡龙大牛的剖析
题外话:如果你对本站文章字体有任何不适,请告知我,我会回复你,字体问题请配置浏览器,调到对眼睛舒适的大小;默认不允许转载,除非转载注明出处。
end