学徒-信息泄露-身份验证绕过
# 实验室:通过信息泄露绕过身份验证
# 题目
此实验室的管理界面存在身份验证绕过漏洞,但在攻击之前,你必须了解前端使用的自定义 HTTP 标头是什么,否则你的攻击将会是不切实际的。
若要解决实验室问题,请获取标头名称,然后使用它绕过实验室的身份验证。访问管理界面并删除carlos
用户。
你可以使用以下凭据登录到自己的帐户:wiener
:peter
- 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/information-disclosure/exploiting/lab-infoleak-authentication-bypass
bgColor: '#001350'
textColor: '#39d50c'
1
2
3
4
5
6
2
3
4
5
6
# 实操
根据题意,可得实验目标:
- 网站存在一个管理界面,前端使用某个自定义的 HTTP 标头与其联系。
- 找到这个标头,利用这个标头绕过身份验证,然后删除 carlos 用户。
点击 “ACCESS THE LAB” 进入实验室。

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

输入题目中提供的用户名和密码,进行登录操作。

登录成功。

尝试访问管理界面/admin
,访问失败,只有 “本地用户” 才能访问。
本地用户?难道和 IP 地址有关。

尝试使用 X-Forwarded-For 等 HTTP 标头来修改 IP 地址,访问失败。
根据题意,该站点自定义了一个标头,需要找到该标头的名称。

在理论知识的学习过程中,官方教程提供了一个 HTTP 方法TRACE
,通过TRACE
方法可以看到我们的请求信息。
下面进行演示,先捕获一个请求数据包,将其转发到 Repeater 功能模块。

将左上角的GET
修改为TRACE
,然后再次发送数据包。
在响应内容中,可以看到我们当前的请求信息,其中包含一个可疑的 HTTP 标头X-Custom-IP-Authorization
,该标头记录了我们的 IP 地址(我给自己的地址打了个码)。

使用刚刚获得的标头X-Custom-IP-Authorization
,并将其参数值设置为127.0.0.1
,再次访问管理界面。
成功访问管理界面。

登录的账户虽然还是 wiener ,但已经具备管理员权限。

在管理界面中,点击 “Delete” 删除 carlos 用户。

删除成功。实验完成。

编辑 (opens new window)