【漏洞挖掘】逻辑漏洞之找回密码

admin 2022年4月19日01:40:05评论57 views字数 1327阅读4分25秒阅读模式

原文链接:https://forum.butian.net/share/147

作者:边路之虎

本人在挖掘逻辑漏洞的时候习惯会去寻找用户登录、注册界面,因为这这地方比较容易入手,最近忙,所以没空挖了。在此,给各位老表们献丑了,和大家分享一下我的挖掘思路。这里以我最近挖到的一个漏洞为例,因为厂商还未修复,所以敏感信息做了打码处理。
第一种,暴破验证码。
正常打开一个找回密码的页面,如下:
【漏洞挖掘】逻辑漏洞之找回密码
输入一个手机号,验证码后,点击下一步:
【漏洞挖掘】逻辑漏洞之找回密码
burpsuite代理抓包,点击获取验证码(因为已经在该官网注册,所以已经知道了短信验证码为4位数),输入随机四位数验证码后,抓包,点击下一步:
【漏洞挖掘】逻辑漏洞之找回密码
在暴破模块,对code参数,也就是短信验证码进行暴破:
【漏洞挖掘】逻辑漏洞之找回密码
找到一个不一样的就是我们的验证码了,输入进去就可以更改密码,美滋滋。
验证码可以暴破的原因是因为对验证码的输入次数没有严格的限制,导致可以无限次输入,从而让攻击者暴力破解。

第二种,傻瓜式更改参数,直接跳转到下一步。
如图所示,操作和前面一样,输入手机号,随意输入验证码,抓包,点击下一步:
【漏洞挖掘】逻辑漏洞之找回密码
抓包如图:
【漏洞挖掘】逻辑漏洞之找回密码
哈哈,从抓到的数据包中,可以看到了一个很明显的参数,step=2,这不就是当钱的步骤二吗?既然如此,为何不试试将step的值修改为3?
【漏洞挖掘】逻辑漏洞之找回密码
修改为3后放包:
【漏洞挖掘】逻辑漏洞之找回密码
好家伙,直接进来设置新密码了。
造成这种结果的原因,想必也不用我多说了,前端开发人员好好反思一下。

第三种,修改状态码。
我们尝试输入随意一个短信验证码后,抓包后,发送到重放request功能模块中,查看返回包:
【漏洞挖掘】逻辑漏洞之找回密码
看到,出现了status参数的值为-1,status可能新手不知道是什么意思,可以去翻译一下,他的意思就是状态码,当前的状态码为-1,表示错误的,失败的,因为验证码我们是随意输入的,所以返回的肯定是错误的,既然这样,那我们就可以尝试更改状态码,把它改成0或1,只要不是-1就行。最后得出结果,当status参数值为1的时候,页面成功跳转到第三步。具体操作如下:
【漏洞挖掘】逻辑漏洞之找回密码
抓包后右键,选择Dointercept -> response to this request,随后点击forward
【漏洞挖掘】逻辑漏洞之找回密码
将状态码status的值改为1,点击forward:
【漏洞挖掘】逻辑漏洞之找回密码
成功跳转。
修复的办法就是不要把状态码放到前端吧。
三种方式就介绍到这里,希望大家可以从攻击者的角度去学会怎么防御,修复漏洞。

- END -

【往期推荐】

漏洞复现 | CVE-2022-24990信息泄露+RCE(POC已公开)

漏洞复现 | CVE-2022-0847内核提权漏洞(POC已公开)

漏洞监控平台——Monitor(源码在文末)

使用poste搭建自己的邮件服务器

实战 | 一次杀猪盘的拿shell经历

DC-1靶机实战和分析

实战|一个表白墙引发的“血案”


原文始发于微信公众号(小艾搞安全):【漏洞挖掘】逻辑漏洞之找回密码

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月19日01:40:05
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【漏洞挖掘】逻辑漏洞之找回密码https://cn-sec.com/archives/919317.html

发表评论

匿名网友 填写信息