从业者-基于Referer的访问控制
# 实验室:基于Referer的访问控制
# 题目
此实验室根据 Referer 标头来控制对某些管理功能的访问。你可以使用凭据administrator:admin
登录并熟悉管理面板。
要解决实验室问题,请使用凭据wiener:peter
进行登录,并利用有缺陷的访问控制 将自己提升为管理员。
- name: 实验室-从业者
desc: 基于Referer的访问控制 >>
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/access-control/lab-referer-based-access-control
bgColor: '#001350'
textColor: '#4cc1ff'
1
2
3
4
5
6
2
3
4
5
6
# 实操
根据题意,可得实验目标:
- 使用 administrator 账户熟悉管理面板,寻找其中的访问控制缺陷。
- 使用 wiener 账户,利用该缺陷将自身提升为管理员权限。
点击 “ACCESS THE LAB” 进入实验室。

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

输入题目中提供的管理员用户名和密码administrator
:admin
进行登录。

登录成功,点击 “Admin panel” 进入管理面板。

同样也是一个 升级/降级 用户的功能。
选择 wiener 用户,然后点击 “Upgrade” 将其升级为管理员。

升级过程中,共产生了两个请求数据包。
第一个数据包,与之前的实验室不太一样,此处采用 GET 方式传递参数。
第二个数据包,由上一个数据包跳转而产生,可以忽略。

做了那么多实验室,应该都有个大致思路了。
将 wiener 降级为普通用户。

退出当前账户,回到登录界面,输入题目中提供的用户名和密码wiener
:peter
进行登录。

通过 “右键 --> Copy URL” 复制第一个数据包的 URL 链接,该 URL 用于升级用户。

在浏览器中访问该链接,访问被拒绝。

还是第一个数据包,复制其中携带的Referer
标头以及参数值。

在浏览器插件中添加Referer
标头以及对应的参数值。

携带修改后的标头访问刚刚的 URL 链接,访问成功,wiener 用户被升级为管理员。
实验完成。

编辑 (opens new window)