返回介绍

15.1 密码找回凭证可被暴力破解

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

密码找回凭证是指在密码找回过程中,服务端向用户的注册手机或者邮箱中发送的验

证码或特殊构造的 URL 等用于用户自证身份的信息。当用户凭证的验证次数未做限制或限

制不严可被绕过时,攻击者可以通过暴力枚举用户凭证的方式,冒充该用户重置其密码。

其业务流程如图 15-1 所示。

图 15-1 业务流程图

15.1.1 某社交软件任意密码修改案例

2012 年,某社交软件的官网上新增了一个忘记账号或密码的链接。

步骤一:单击忘记密码链接后,进入重设密码选择页,如图 15-2 和图 15-3 所示。

图 15-2 忘记密码链接

图 15-3 重设密码选择页

步骤二:选择使用手机号重设密码,并输入一个真实注册用户的手机号码,如图 15-4

所示。

图 15-4 重设密码页面

步骤三:单击“下一步”按钮后,系统提示将发送验证码到注册手机,如图 15-5 所示。

图 15-5 发送验证码页面

步骤四:单击“我已收到验证短信”后,系统弹出重置密码确认页,需要输入手机上收

到的验证码作为密码找回凭证。核对成功则可以成功进行密码重置,如图 15-6 所示。

图 15-6 发送验证码页面

步骤五:单击“OK”并对该请求进行抓包,获取到包文:

check=false&phone=186XXXXXXXX&……&verifycode=1234。

步骤六:根据以上包文信息可以发现该密码找回功能的验证码比较简单,只有 4 位数

字,可以尝试枚举修改包文中的 verifycode 进行暴力破解。几次尝试后收到系统提示“您的

提交请求过于频繁,请稍后再试。”说明该网站的密码找回功能是对用户凭证的验证频率

做了限制的,只能想办法绕过其限制。

步骤七:经过一系列尝试后发现,在 phone=186XXXXXXXX 的号码后面随机添加不

为数字的字符时,可以绕过此限制。于是推测其漏洞点在于判断 phone=186XXXXXXXX

的尝试次数时未对 phone 的值进行提纯,所以可以利用在号码后添加随机字符的方式绕过

限制。但在下一步操作的时候,只取了 phone 中的数字部分,然后再取出此号码的

verifycode 进行比对,比对成功则修改密码,如图 15-7 所示。

图 15-7 暴力破解示例

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

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

发布评论

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