重生第六篇之任意用户密码重置

admin 2024年1月24日11:15:55评论7 views字数 1249阅读4分9秒阅读模式
 

0x01 前言叙述
    目标系统是一个小额贷款网站,通过对资产进行打点,发现目标系统的安全方法做的还是很到位的,防火墙、哇夫(WAF)统统都架上了,但是网站看起来确实有点老旧,最后尝试从逻辑漏洞下手。
    注:本文涉及到相关漏洞已报送厂商并修复,本文仅限技术讨论和研究,严禁用于非法用途,否则产生后果自行承担。
0x02漏洞复现
    开局一个登录框,通过登录框我们可以看到认证强度还是比较高的,身份证号+密码+静态验证码+手机短信验证码
重生第六篇之任意用户密码重置
    尝试先注册一个账号,发现第一步校验信息就过不了,提示没有在线下开户,猜测他们这里应该是需要先线下开户再线上注册才行,而且注册需要同时提供身份证号+姓名,放弃注册,去登录口看看

重生第六篇之任意用户密码重置

    随便输入一个信息登录一下抓包看看,发现登录的时候会先校验当前登录用户绑定的手机号码是不是在系统中存在,这里系统只通过身份证号来校验的,那我们就可以通过这个接口来进行用户枚举
重生第六篇之任意用户密码重置
    上字典,梭哈,这里成功枚举出来的几个用户,意外收获,发现在成功枚举到用户的返回包中泄露了用户的手机号和姓名

重生第六篇之任意用户密码重置

    这里我们就有了身份证号、姓名、手机号,但是登录还是需要密码和手机短信验证码,还是没法登录,再次去注册接口看看能不能覆盖注册。没有意外还是不行。提示已注册了GG

重生第六篇之任意用户密码重置

    返回登录页面,还有一个“忘记密码”接口,接着测试
重生第六篇之任意用户密码重置
    进去之后,跟注册页面很像,这里我们已经枚举出来了身份证号、姓名、手机号,我们填入信息进行验证
重生第六篇之任意用户密码重置
    成功跳转到下一步
重生第六篇之任意用户密码重置
    点击获取验证码,拦截数据包,发现没有可以修改的参数,注意这里我们可以发现返回包中返回了很多的参数,其中就有一个grkey和sjhm
重生第六篇之任意用户密码重置
    这里我们尝试将grkey和sjhm 两个参数手动添加到请求包中,再次发包,返回包提示短信生成成功
重生第六篇之任意用户密码重置
    奇迹出现了,这里我们也成功接收到了验证码
重生第六篇之任意用户密码重置
    我们填入验证码点击“短信验证” 发现还是失败
重生第六篇之任意用户密码重置
    查看历史数据包发现,这一步短信验证时带入的手机号码还是用户的,而获取验证码的是我们的手机号的,所以会提示报错,输入验证码 点下一步 增加一个sjhm字段 值选自己手机号
重生第六篇之任意用户密码重置
    提示验证成功,然后就是直接改密码就完事儿了,到这里我们就有了用户的姓名、身份证号、手机号、登录密码了,现在登录条件就差登录时候的手机验证码了
重生第六篇之任意用户密码重置
重生第六篇之任意用户密码重置
    回到登录页面 填入账号信息,拦截数据包,一个一个放,发现再发送短信是请求包中携带了用户的手机号码,我们直接把数据中的手机号码替换成自己的,然后放包

重生第六篇之任意用户密码重置

    成功获取到验证码
重生第六篇之任意用户密码重置
    然后我们输入验证码、点登录、拦截数据包,把手机号修改成自己的,然后放包

重生第六篇之任意用户密码重置

    成功登录系统
重生第六篇之任意用户密码重置
    这个系统的身份认证采用了组合认证方式,身份证号+密码+静态验证码+手机短信验证码,但是每一种认证方式又是单独认证,1、身份证号+密码 2、手机号码+短信验证码,这就导致了攻击者有机可趁,随意重置用户的密码、登录用户的账号。

原文始发于微信公众号(Seraph安全实验室):重生第六篇之任意用户密码重置

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月24日11:15:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   重生第六篇之任意用户密码重置https://cn-sec.com/archives/2419948.html

发表评论

匿名网友 填写信息