返回介绍

15.3 密码重置链接存在弱 Token

发布于 2024-10-11 00:03:35 字数 1664 浏览 0 评论 0 收藏 0

有些信息系统的密码找回功能会在服务端生成一个随机 Token 并发送到用户邮箱作

为密码找回凭证。但一旦这个 Token 的生成方式被破解,攻击者就可以伪造该 Token 作为

凭证重置其他用户的密码。测试流程如图 15-19 所示。

图 15-19 测试流程图

15.3.1 使用时间戳的 md5 作为密码重置 Token 步骤一:进入某网站先按正常流程取回一次密码,查看邮箱,邮件内容如图 15-20 所

示。

图 15-20 邮件内容

步骤二:从邮件内容中可以看出参数 vc 为一串 md5 值,u 为用户邮箱。将参数 vc 解密

后为 1496732066。于是猜测参数 vc 应该为 id 值,尝试遍历 id 值并修改变量 u,查看是否可以

修改其他用户密码,结果发现不可行。

步骤三:再仔细观察 vc 参数,发现和 UNIX 时间戳格式相符,于是使用 UNIX 时间戳转

换工具验证,转换成功,如图 15-21 所示。

图 15-21 UNIX 时间戳转换

步骤四:大致推测出该系统找回密码的流程。用户取回密码时,先产生一个精确的时

间戳并与账号绑定记录在数据库内,同时将该时间戳作为密码找回凭证发送到用户的注册

邮箱。只要用户能够向系统提供该时间戳即可通过认证,进入密码重置流程。但对攻击者

来说,只要编写一段程序在一定时间段内对时间戳进行暴力猜解,很快就可以获得找回密

码的有效链接,如图 15-22 所示。

15-22 测试 exp

步骤五:最终成功重置密码并登录到个人中心,如图 15-23 所示。

图 15-23 重置密码成功

15.3.2 使用服务器时间作为密码重置 Token

步骤一:进入某积分兑换商城,首先用 2 个账号在两个浏览器窗口中同时找回密码来

进行对比,如图 15-24 所示。

步骤二:对比邮箱中收到的找回密码链接,我们可以看出,找回密码使用的随机

Token 只相差 4,那么攻击者通过遍历 Token 的方式即可重置其他用户的密码,如图 15-25 所

示。

图 15-24 开始找回密码

图 15-25 重置密码链接

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文