问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
【漏洞挖掘】逻辑漏洞之找回密码
渗透测试
互联网中,有用户注册的地方,基本就会有密码找回的功能。而密码找回功能里可能存在的漏洞,很多程序员都没有想到。 而这些漏洞往往可能产生非常大的危害,如用户账号被盗等。
本人在挖掘逻辑漏洞的时候习惯会去寻找用户登录、注册界面,因为这这地方比较容易入手,最近忙,所以没空挖了。在此,给各位老表们献丑了,和大家分享一下我的挖掘思路。这里以我最近挖到的一个漏洞为例,因为厂商还未修复,所以敏感信息做了打码处理。 **第一种,暴破验证码。** 正常打开一个找回密码的页面,如下: [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-8036dcced8ef66656bf6415902d4eb519e0089c6.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-8036dcced8ef66656bf6415902d4eb519e0089c6.png) 输入一个手机号,验证码后,点击下一步: [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-3cf6f64a41cf4756a59a2f393a565228a315bdca.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-3cf6f64a41cf4756a59a2f393a565228a315bdca.png) burpsuite代理抓包,点击获取验证码(因为已经在该官网注册,所以已经知道了短信验证码为4位数),输入随机四位数验证码后,抓包,点击下一步: [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-5114d09a2ed6fae25f98d8ee0873e4f33d4c315d.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-5114d09a2ed6fae25f98d8ee0873e4f33d4c315d.png) 在暴破模块,对code参数,也就是短信验证码进行暴破: [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-1dde7b8ea3ad4c90bd35f6809df42b0cc1fd3455.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-1dde7b8ea3ad4c90bd35f6809df42b0cc1fd3455.png) 找到一个不一样的就是我们的验证码了,输入进去就可以更改密码,美滋滋。 验证码可以暴破的原因是因为对验证码的输入次数没有严格的限制,导致可以无限次输入,从而让攻击者暴力破解。 **第二种,傻瓜式更改参数,直接跳转到下一步。** 如图所示,操作和前面一样,输入手机号,随意输入验证码,抓包,点击下一步: [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-a7f505ca843f2053dfb817aee7cf3b4a48aa9122.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-a7f505ca843f2053dfb817aee7cf3b4a48aa9122.png) 抓包如图: [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-546c0133fbaa293e699e615777fa1ef5af79a543.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-546c0133fbaa293e699e615777fa1ef5af79a543.png) 哈哈,从抓到的数据包中,可以看到了一个很明显的参数,step=2,这不就是当钱的步骤二吗?既然如此,为何不试试将step的值修改为3? [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-ed13c3b75ddecbece00679ec7af3e97cd2d59012.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-ed13c3b75ddecbece00679ec7af3e97cd2d59012.png) 修改为3后放包: [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-a5b8f4f6be06eff23d46dcbe21adc2f0e9f66ffb.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-a5b8f4f6be06eff23d46dcbe21adc2f0e9f66ffb.png) 好家伙,直接进来设置新密码了。 造成这种结果的原因,想必也不用我多说了,前端开发人员好好反思一下。 **第三种,修改状态码。** 我们尝试输入随意一个短信验证码后,抓包后,发送到重放request功能模块中,查看返回包: [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-69fc781a13594356340674dd194a57f820e76c0a.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-69fc781a13594356340674dd194a57f820e76c0a.png) 看到,出现了status参数的值为-1,status可能新手不知道是什么意思,可以去翻译一下,他的意思就是状态码,当前的状态码为-1,表示错误的,失败的,因为验证码我们是随意输入的,所以返回的肯定是错误的,既然这样,那我们就可以尝试更改状态码,把它改成0或1,只要不是-1就行。最后得出结果,当status参数值为1的时候,页面成功跳转到第三步。具体操作如下: [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-2088f613cf39728c5d5827cd159f2947c5862ae8.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-2088f613cf39728c5d5827cd159f2947c5862ae8.png) 抓包后右键,选择Dointercept -> response to this request,随后点击forward [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-95f105e4f4bf144281df2fffaf44c117fdcef489.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-95f105e4f4bf144281df2fffaf44c117fdcef489.png) 将状态码status的值改为1,点击forward: [![](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-35eddc3a79841623094f8cbc6fbeebf9a6430a3f.png)](https://shs3.b.qianxin.com/attack_forum/2021/05/attach-35eddc3a79841623094f8cbc6fbeebf9a6430a3f.png) 成功跳转。 修复的办法就是不要把状态码放到前端吧。 三种方式就介绍到这里,希望大家可以从攻击者的角度去学会怎么防御,修复漏洞。
发表于 2021-05-28 12:59:48
阅读 ( 7097 )
分类:
WEB安全
5 推荐
收藏
0 条评论
请先
登录
后评论
边路之虎
test
2 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!