密码找回逻辑漏洞研究

前段时间发现一个开发人员很容易出错的密码找回问题(当然是个已知的问题),然后在补天上根据特点随便找了几个厂商,一试确实存在(也赚了一些库币)。今天就记录一下我总结的经验。

0x00 常见的密码找回逻辑问题

  • 验证码暴力破解
  • 顺序步骤绕过
  • 邮箱找回逻辑绕过
  • 手机找回逻辑绕过

要总结起来也很多很细,前人已经总结了,我就不重复啰嗦了P牛github脑图。

0x01 异步重置

为了显得高大上,起了个高大上的名字叫异步重置。今天要记录的这种重置方式的原理其实就是开发人员靠Cookie识别找回密码者的身份的,只要将Cookie覆盖或者伪造即可达到任意用户密码重置的目的。

举个栗子(拿我补天提交的展示过程):

1.用我自己手机注册个账号,然后找回密码,输入短信验证码,跳转到重置密码页,停住不动,用我自己的手机号已经走到重置密码的页面了,如下图:
1
2.在同一个浏览器下新建窗口,找回要攻击的手机号的密码,输入手机号,找了该网站HR的手机号重置,输入图片验证码提交。
2
3.好了!Cookie信息已经覆盖了,不用再输短信验证码了。刷新一下我刚刚第一步停住的重置密码页面,看要重置的手机号变了:
3

0x02 黑盒如何快速判定存在此类漏洞

经过两次测试,我确定了此类漏洞一些共同点,可快速找到存在此类密码重置问题(我试了5个有3个存在):

  • 以手机验证码方式找回密码
  • 找回密码一般分为3步及3步以上
  • 第一步是输入手机号码和图片验证码

其实很容易想清楚,由于是靠Cookie验证身份,只要通过了账号和图片验证码的这一步,Cookie就记录某个特定用户的身份信息。

0x03 如何找回权限比较大用户的密码

我们都知道权限比较大能够使测试更深入,能够获取的敏感信息也更多,也能够让厂商更重视安全问题。我一般通过以下几种方式:

  • adminsystem等账号
  • 工商备案信息查询(一般都会留有联系方式)
  • 招聘信息(一般是hr联系方式)
  • 网站官网(关于我们,联系我们)
  • whois信息(邮箱,手机号)

再用whois这种方式举个栗子:
whois中的关键信息(有点社工的意思)

  • 联系人
  • 联系方式
  • Registrant Phone
  • Registrant Fax
  • Registrant Email
  • Admin Phone
  • Admin Fax
  • Tech Phone
  • Tech Fax

上面那个栗子我通过Tech Phone找回密码,得到的是管理员权限。4

0x04 相关知识

密码找回逻辑漏洞总结

密码找回功能可能存在的问题(补充)

一些常见的重置密码漏洞分析整理

密码逻辑漏洞小总结

文章目录
  1. 1. 0x00 常见的密码找回逻辑问题
  2. 2. 0x01 异步重置
  3. 3. 0x02 黑盒如何快速判定存在此类漏洞
  4. 4. 0x03 如何找回权限比较大用户的密码
  5. 5. 0x04 相关知识
|