记一次逻辑漏洞修改任意用户密码

记一次逻辑漏洞修改任意用户密码

原创 宓湫 UF安全团队 2024-12-22 06:38

登入框对抗

开局经典登入框

有注册功能,注册一个账号,然后进行登入,可以登入成功,然后直接点击忘记密码

输入手机号,输入对应的验证码即可进行修改密码成功,类似于这样登入框测试任意用户重置密码
流程
:

输入手机号校验短信验证码——>来到输入新密码页面——->修改成功或者失败

针对上面流程有如下测试思路

1.短信验证码可爆破且成功

2.登入逻辑可绕过(本地验证等)

3.手机号替换(双写,抓包修改等)

4.先输入正确的验证码后来到输入新密码页面,输入密码进行抓包在修改为其他手机号,或者其他鉴权替换cookie等

………….

此处直接输入刚才注册的手机号,点击获取验证码,然后随便验证码为111111,进行抓包

进行抓包,查看返回信息

类似于这样数据包返回信息结果不带有鉴权例如cookie,token等信息,90%都可能存在漏洞,直接修改1为0,放包成功来到输入新密码页面

输入新密码,成功修改

小结

测试任意用户重置密码漏洞:

  1. 短信验证码
    ,一般找回密码都是基于短信验证码进行修改,只要能获取短信验证码即可完成漏洞,常见能获取验证码漏洞,例如验证码爆破,验证码回显,双写,替换等。

  2. 未绑定用户
    :先使用自己手机号和短信验证码进行新密码页面,然后抓包进行替换用户名或者手机号

  3. 本地验证
    :修改返回数据包信息或者找到一些接口直接挑掉修改密码的接口页面

  4. 鉴权
    :接受正确的短信验证码后来到修改页面,如果有cookie等鉴权,来到burpsuite的repeater页可删掉Refer和鉴权并且遍历其他userid等关键字测试

  5. 基于框架已知漏洞
    :例如JeecgBoot 任意用户密码重置漏洞,直接打poc即可

………..