目录

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

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

0x01 任务简报

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

0x02 实战:复现漏洞

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

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

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

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

../../../../../../public/p/juice-shop-admin-registration注册管理员权限账户/assets/Pastedimage20260407103901.png

🔎 第二步:分析返回的 JSON

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

"role": "customer"

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

../../../../../../public/p/juice-shop-admin-registration注册管理员权限账户/assets/Pastedimage20260407104041.png

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

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

../../../../../../public/p/juice-shop-admin-registration注册管理员权限账户/assets/Pastedimage20260407104446.png

http://127.0.0.1:3000/#/administration

../../../../../../public/p/juice-shop-admin-registration注册管理员权限账户/assets/Pastedimage20260407111310.png

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

"role": "admin"

../../../../../../public/p/juice-shop-admin-registration注册管理员权限账户/assets/Pastedimage20260407112600.png

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

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

"role": "admin"

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

../../../../../../public/p/juice-shop-admin-registration注册管理员权限账户/assets/Pastedimage20260407112851.png

✅ 第五步:完成挑战

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