逻辑越权之找回机制和接口安全

业务上信息找回的逻辑机制

在各种网站上几乎都存在信息找回的业务,比如密码找回,绑定手机号等等,而这些的业务逻辑代码实现也不统一,导致存在很多逻辑上的缺陷,从而形成漏洞。

总结下来信息找回的逻辑缺陷有以下几种:

  • 客户端回显
  • Response 状态值
  • 验证码爆破
  • 找回流程绕过等

关于验证码爆破就是比如对方服务器发送一个四位数的验证码,有效时间为五分钟,我们就可以进行爆破,从0000到9999,绝对是能爆破出来的,如果对方不设置接受频率或者验证码机制等。

关于找回流程绕过就是对方如果没有做好流程的衔接,比如,重置密码要有三个数据包,最后一个数据包就是完成重置密码的数据包,前两个是验证码认证等,我们直接抓取第三个数据包,把要重置的账号写好,直接发包,就达到绕过检查流程,从而重置密码的效果。

找回的绕过案例

墨者靶场

打开靶场环境:

图片[1]-逻辑越权之找回机制和接口安全-Drton1博客

我们需要重置账号17101304128的密码。

图片[2]-逻辑越权之找回机制和接口安全-Drton1博客

我们此时的思路是能不能利用系统逻辑的缺陷,用已经注册过的手机号发送验证码,然后最后替换成 目标手机号,进行重置密码。我们将每个数据包都进行抓取然后进行分析。

我们输入注册的手机号进行获取验证码 ,拦截包,就是把我们的手机号发送到服务器。

图片[3]-逻辑越权之找回机制和接口安全-Drton1博客

然后回显验证码:

图片[4]-逻辑越权之找回机制和接口安全-Drton1博客

我们输入正确的验证码再次进行抓包,发现数据包中有手机号。

图片[5]-逻辑越权之找回机制和接口安全-Drton1博客

我们先用目标手机号发送一次验证码,然后再用注册的手机号获取的验证码进行验证。

此时直接进行数据包中的手机号替换,或者直接拿到验证码后在页面进行手机号替换即可重置目标手机号密码,拿到key。

图片[6]-逻辑越权之找回机制和接口安全-Drton1博客

逻辑原理:

修改密码的数据包中包含3个有效数据:cookie,验证码,手机。这仨匹配上了,就修改成功。 1.输入攻击者手机号,点击获取验证码。此时服务器把cookie,验证码,攻击者手机号三者绑定在一起了。我们也获取到了验证码。 2.打开另一个浏览器,输入被攻击者手机,获取验证码。此时信息被覆盖了。验证信息则变成cookie,验证码,被攻击者手机。 3.cookie和验证码有校验,cookie和手机号有校验。但是手机号和验证码没校验,是覆盖cookie能重置密码的主要原因。

PHP云系统

验证码回显: 就是返回包中直接带有验证码,我们即便没有手机号,也能得知验证码:

图片[7]-逻辑越权之找回机制和接口安全-Drton1博客

点击获取验证码,拦截返回包,发现验证码

图片[8]-逻辑越权之找回机制和接口安全-Drton1博客

此时即使我们没有该手机号,也能知道验证码,进行修改密码等高危操作。

修改Response 状态值

我们如果发送一个正确的验证码到服务器,服务器会回显一个 数字1 表示正确,前端收到这个状态,就会进行相应的操作,如果是错误的验证码,那么服务器会回显一个数字3表示错误,前端收到这个状态就不会操作,那么如果我们拦截返回包,手动修改这个状态值,就能达到输入错误的验证码也能执行对应的操作:

图片[9]-逻辑越权之找回机制和接口安全-Drton1博客

我们输入一个错误的验证码,手动把返回包状态值修改即可。

涉及资源

http://downcode.com/downcode/j_16621.shtml

https://pan.baidu.com/share/init?surl=P73QFmEhY6f350CvmnOJNg 提取码xiao

https://pan.baidu.com/share/init?surl=N963jFjTefNc6Gnso-RHmw 提取码xiao

https://www.mozhe.cn/bug/detail/K2sxTTVYaWNncUE1cTdyNXIyTklHdz09bW96aGUmozhe

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论