漏洞挖掘|一次某站点的任意用户密码更改漏洞
2024-1-25 23:46:15 Author: mp.weixin.qq.com(查看原文) 阅读量:14 收藏

前言叙述

  现在的洞越来越难挖了,近些年的大佬们纷纷登场,安全防护也在不断提升,作为一个不"专业"的人,实在头疼不已,最近实在无力加上很多现实中事忙活,突然不知道咋挖了,只能水一次技术了

* 本文涉及到相关漏洞已报送厂商并修复,本文仅限技术讨论和研究,严禁用于非法用途,否则产生后果自行承担

漏洞复现

  非常神奇的在用户找回密码界面,输入手机号的时候,会调用js查询用户是否存在,当然这里可以用抓包去跑一下用户枚举,但是太麻烦了,直接用google搜索一下是不是有手机号相关的内容

site:xxx.com 手机号

很幸运的拿到了一个用户留言的页面,用户名默认是手机号,就选择一个幸运er

在校对手机号存在后,可以发送验证码,在第一次提交的时候会进行验证码校验,此时第一次校验只有五次机会

此时第一想法就是对状态码进行修改,在获取到正确的状态码后,修改,欺骗绕过了进入到修改密码页面

奈何没料到还有二次验证码校验,在输入验证码下一步后,会二次核对验证码,这里有个逻辑问题:

当第一次验证码校验失败后,可以得到失败状态码,但是想撞正确验证码基本不可行,因为只有五次机会
第二次验证码校验没有限制次数,但是二次验证是在通过了一次验证后跳转到修改密码页面,当二次验证码不正确时,修改密码会跳转到error.html

这里想去爆破二次验证的验证码,拿到响应包内的字节长度,结果都是正确跳转到修改密码页面的字节长度

当一次验证码正确,二次验证码错误时,才能爆破二次验证码

内心OS:我知道验证码还问你干啥

后来,想到了之前看过的一个文章方法,可以使用一些符号去间隔手机号,从而达到获取相同验证码的目的

A:受害者手机号,未知验证码B:本地手机号在发送验证码之前,使用符号间隔,将会发送给两个手机号同样验证码

瞎猫碰上死耗子,还真的拿到了两个同样的验证码

直接使用方法,A+B获取到验证码,然后每个包内相同的payload手机号,梭到密码修改成功

总结

漏洞存在原因:在检验发送验证码没有对手机号进行检验,从而将两个手机号提交到SMS网关,并发送验证码,挺搞不懂最后的修改密码的语句,A+B方法获取到验证码后,在修改密码的时候必须也是A+B手机号,不能是单个手机号,不然也是跳转到error.html页面,希望下次洞神助我拿个RCE漏洞!

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款

往期回顾

xss研究笔记

SSRF研究笔记

dom-xss精选文章

2022年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

福利视频

笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品

https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374

技术交流

技术交流请加笔者微信:richardo1o1 (暗号:growing)


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247493382&idx=1&sn=025e6263ffc42bae045be0ed2d37b0f5&chksm=e8a5ed65dfd264739c27260e7f00917910e3cb01fbbf5ff05b87cb335b2978e704afc8ec205f&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh