15.4 密码重置凭证与用户账户关联不严
有些信息系统在密码找回功能的校验逻辑上存在缺陷,只校验了密码重置凭证是否在
数据库中存在,但未严格校验该重置凭证和用户账号之间的绑定关系。这种密码重置凭证
与用户账户关联不严的逻辑漏洞就让攻击者可以通过在数据包中修改用户账号达到重置其
他密码的目的,如图 15-26 所示。
图 15-26 业务流程图
15.4.1 使用短信验证码找回密码
步骤一:进入某手机厂商官网,首先填写自己的手机号码进行密码找回。
步骤二:收到验证码后填入验证码和新密码提交,这时候使用数据抓包工具进行抓
包,将数据包中的 username 修改为其他账号,post 上去后就可以使用自己设置的密码登录
其他账号,如图 15-27 所示。
图 15-27 重置密码链接
15.4.2 使用邮箱 Token 找回密码
步骤一:进入某公共信息网站使用真实信息找回密码后,系统会发送一封邮件到绑定
的邮箱。邮件中的找回密码链接如下:
http://**.**.**.**/test.do?method=resetPassword&id=用户 ID 值
&authcode=XXX&Email=邮箱地址
步骤二:访问后可直接进入用户密码重置页面。在该页面输入新密码,并在提交时使
用抓包工具抓取数据抓包,可获得以下内容:
org.apache.struts.taglib.html.TOKEN=83accc27d5178f832d9f22a1d02bdacf&org.apache.struts.taglib.html.TOKEN=83accc27d5178f832d9f22a1d02bdacf&rt Password=123456&passwordw=123456&rtEmail=邮箱&idtagCard=用户 ID
步骤三:虽然包文中含有 org.apache.struts.taglib.html.TOKEN 和
org.apache.struts.taglib.html.TOKEN 两个 Token 参数,但因为并没有和用户 ID 进行绑定验
证,依然可以通过修改用户 ID 重置他人密码。随机修改了一个用户 ID 并提交后,提示密
码重置成功,如图 15-28 所示。
图 15-28 密码重置成功
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论