0x1 前言
某次众测,在测试过程中,发现平台在用户身份验证机制上的关键缺陷,导致仅需获取目标用户的用户名和手机号,即可实现任意用户密码的修改。这一问题显然暴露了平台在身份认证设计中的重大安全隐患。
这一漏洞的利用门槛相对较低,攻击者可以通过社会工程学或公开信息获取目标用户的基本信息,然后直接发起攻击,劫持用户账户。漏洞的影响不仅局限于个人隐私和账户安全,还可能对整个平台的核心业务和用户信任造成严重威胁
0x2 漏洞案列
通过fofa找到资产中的一个采购平台。
在修改密码处,需要身份验证码。
测试过后发现在身份验证中,要求手机号和用户账号要保持一直。但是我们现在没有账号,在主页中也没有发现注册的功能点,开始分析js文件,观察findsomething插件,看是否存在注册接口。
给大家推荐一个比较好用的插件,配合findsomething简直无敌了。
findsomething点击复制url
将复制的url粘贴到这个里面,点击openurls,该插件就会将所有的url在当前浏览器中,都跑一边。
下载地址:https://github.com/htrinter/Open-Multiple-URLs
打开后浏览器的标签栏belike(注:可能会导致电脑卡顿):
但是缺点也很明显,findsomething插件复制出来的的url,都是自动拼接到根路径。如:https://baidu.com/aooucth 而网站真正的路径可能前面存在固定路径,如:https://baidu.com/固定路径/aooucth 这样的,遇到这种问题,还需要师傅们自己拼接,或者通过burp爆破。
再次这个网站就是这样的,在findsomething,发现/page/supplier/register/register.html
,直接拼接会跳转到主页,在固定路径后拼接就可注册了。
正常注册账号后,忘记密码处,输入正确的账号和手机号,获取数据包。
发现在数据包中,并没有验证验证码的对错,输入正确的绑定关系的账号和手机号,直接返回一个result值。只需要将账号和手机号比对正确,就会获取到一个 result,页面跳转到 https:/xxx/pass.html?id=xxxxx6xxxxxxxxxxxxxx
此时大家都能想到该id值,就是修改用户密码的关键,只要获取到用户名和手机号就可以无需验证码修改了。在下面的链接替换其中的 id 值,即可无需验证码修改对应账号的密码。而且我还发现,这个 result 值永久不会变化,只要获取到受害者的 result 值,,即使对方修改密码后,我们也可再次修改,无论何时都可修改受害者密码。
漏洞横向
理论是可以的,然后我们现在就是像如何获取受害者的账号和手机号呢?
登陆后拿到cookie,再次将findsomething的接口报一遍,刚好泄露用户联系方式。在https://xxxx/。。。。/getAnnouncement 接口泄露人员的联系方式和邮箱。
然后根据姓名和手机号进行爆破,运气也是好炸天了。
替换id值后,也确实可以修改用户的密码,在这里就没有修改,众测嘛,证明危害即可,不能影响正常的业务。
标签:手机号,修改,findsomething,账号,众测,用户,密码,任意 From: https://www.cnblogs.com/cn-sec-/p/18678391