【juice-shop】★★★ Admin Registration:注册管理员权限账户

通过分析注册接口返回的 JSON 数据,发现 role 字段,在请求体中手动添加 role:admin 完成管理员账户注册。

【juice-shop】★★★ Admin Registration:注册管理员权限账户

0x01 任务简报

💡 提示 (Hints)
1. 必须得到一个无法通过正常途径分配的权限。
2. 注册为普通用户,了解此用例涉及哪些 API 接口。
3. 设想区分普通用户与管理员的最简单实现方式。

0x02 实战:复现漏洞

🔍 第一步:注册普通用户并抓包

提示其实无所谓,在实际操作的时候我大概只与第三点有关……

在这个挑战开始前,如果完成过Login Admin更好,没有完成过也没事(

首先,打开burp,使用内置浏览器注册一个普通用户

注册普通用户

🔎 第二步:分析返回的 JSON

观察注册成功后服务器返回的 JSON 数据,发现其中包含一个 role 字段:

1
"role": "customer"

这很可能就是区分普通用户与管理员的关键字段。

返回 JSON 分析

🔑 第三步:确认管理员的 role 值

我们把这个包发送到重放器,重新注册一个账号,把这个字段添加进去,如果没有完成过Login Admin,可以猜一下这里有哪些role,不过我不喜欢猜,使用 SQL 注入登录管理员账户,访问管理后台:

1
http://127.0.0.1:3000/#/administration

管理后台

在 Burp 中找到对应请求,从响应中确认管理员的 role 值:

1
"role": "admin"

管理员 role 确认

💉 第四步:篡改请求注册管理员账户

将注册请求发送到 Repeater,修改请求体,在 JSON 中添加 role 字段:

1
"role": "admin"

发送请求,注册一个新的管理员权限账户。

篡改请求

✅ 第五步:完成挑战

成功注册拥有管理员权限的用户,挑战完成。

使用 Hugo 构建
主题 StackJimmy 设计