任意密码重置漏洞(身份认证缺失)


前言

持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。

0x01 漏洞描述

- 任意密码重置 -

由于应⽤在最初设计时由于未考虑全⾯,在找回密码模块中程序的判断逻辑及程序的处理流程上存在缺陷,导致攻击者可以绕过程序的处理流程,从⽽达到任意密码重置的⽬的。一般手段为:在密码找回、密码重置的最后一步将账号 ID 修改为目标 ID,如果系统未有严格校验,将导致对目标 ID 进行密码修改。

0x02 漏洞等级

威胁级别 高危 中危 低危

0x03 漏洞验证

访问重置密码页面,输入存在的手机号用户和任意密码进行重置密码。

该系统重置密码功能,没有对手机号账户的持有者进行身份验证(例如:短信验证码验证),重放数据包即可成功重置任意用户密码。

0x04 漏洞修复

  1. 对客户端提交的修改密码请求,应对请求的用户身份与当前用户的手机号身份进行校验,判断是否有权修改用户的密码。
  2. 对短信验证码的过期时间以及提交次数进行限制,防止短信验证码被暴力破解。
  3. 不应将用于接收验证信息的手机号等信息全部明文传到客户端,应对手机号等信息进行屏蔽处理,或不将此类信息返回到客户端。
  4. 输入手机号和短信验证码进行重置密码时,对该短信验证码、账号及手机号做统一严格校验。

文章作者: LuckySec
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 LuckySec !
评论
 上一篇
HOST头注入漏洞 HOST头注入漏洞
在很多情况下,开发人员都会信任 HTTP 请求包 Header 中的 Host 字段值,并使用它来生成链接、导入脚本,甚至使用其值生产密码重置链接。这种行为非常不当,因为 HTTP HOST 字段值可能会被攻击者控制。如果应用程序没有对 Host 字段值进行处理,攻击者就可以使用 Web 缓存中毒和滥用替代通道(例如密码重置电子邮件)等手段来利用此漏洞。
2022-10-19
下一篇 
任意用户登录漏洞(响应内容绕过) 任意用户登录漏洞(响应内容绕过)
由于应⽤在最初设计时由于未考虑全⾯,在登录模块中程序的判断逻辑及程序的处理流程上存在缺陷,导致攻击者可以绕过程序的处理流程,从⽽达到任意用户登录的⽬的,如服务器返回一个flag参数作为登录是否成功的标准,但是由于代码最后登录是否成功是通过获取这个flag参数来作为最终的验证,导致攻击者通过修改flag参数即可绕过登录的限制。任意账号登录的危害性是非常严重的,不仅会导致所有账号失陷,威胁客户利益,甚至直接威胁到管理员账号。在管理员账号泄露的情况下,很可能导致进一步损失。
2022-10-17
  目录