记一次众测发现的任意用户修改密码

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值后,也确实可以修改用户的密码,在这里就没有修改,众测嘛,证明危害即可,不能影响正常的业务。

posted @   CN-SEC中文网  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!
点击右上角即可分享
微信分享提示