学徒-密码重置-破坏重置逻辑
# 实验室:破坏密码重置的逻辑
# 题目
此实验室的密码重置功能容易受到攻击。要解决实验室问题,请重置 carlos 的密码,然后登录并访问他的 “My account” 页面。
- 你的凭据:
wiener
:peter
- 受害者的用户名:
carlos
- name: 实验室-学徒
desc: 破坏密码重置的逻辑 >>
avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
link: https://portswigger.net/web-security/authentication/other-mechanisms/lab-password-reset-broken-logic
bgColor: '#001350'
textColor: '#39d50c'
1
2
3
4
5
6
2
3
4
5
6
# 实操
根据题意,可得实验目标:
- 该实验室存在 “密码重置功能” 。
- 利用该功能的逻辑缺陷,重置 carlos 用户的密码,然后登录并访问其账户页面。
点击 “Access the lab” 进入实验室。

点击 “My account” 进入登录页面。

# 密码重置功能测试
先进行一次正常的登录操作。

登录成功,没问题,点击 “Log out” 登出。

回到登录页面,点击 “Forgot password?” 进入忘记密码页面。

启用浏览器代理,然后输入 需要重置密码的用户名,点击 “Submit” 提交。

此时,目标应用程序会向wiener
用户的邮箱发送重置链接。
点击上方的 “Email client” 进入邮箱客户端。

在wiener
用户的邮箱中,可以看到一封电子邮件,其中包含密码重置链接。

访问密码重置链接,可以修改 wiener 用户的密码:

分析数据包。
第 1 个数据包,在忘记密码页面 输入用户名,然后提交表单,应用程序会向 wiener 用户的邮箱中发送密码重置链接。

第 2 个数据包,在电子邮件中 点击链接,进入密码重置页面。

第 3 个数据包,在密码重置页面 输入新密码,然后提交表单,成功修改密码。

思考时间:以上三个数据包,哪个数据包最有可能存在问题?
# 破坏逻辑
重复发送第 3 个数据包,发现可以重复使用。

修改 username 字段的值为carlos
,未提示错误信息,大概率修改成功。

回到登录页面,尝试进行登录carlos:peter123
:

登录成功,实验完成。

编辑 (opens new window)