【juice-shop】★★ Empty User Registration:注册一个“隐形人”

绕过前端校验,利用 Burp Suite 拦截并篡改请求,注册一个空数据用户。

【juice-shop】★★ Empty User Registration:注册一个“隐形人”

如何创建一个“不存在”的用户?当前端的必填项校验很严格时,直接去跟后端的 API 聊聊是个好主意。


0x00 前置要求 (Prerequisites)

  • 推荐关卡:建议先完成 Repetitive Registration(非强制,但有助于理解注册逻辑)。
  • 核心武器:启动 Burp Suite

0x01 任务简报

💡 核心线索 (Hints)
  1. 考虑拦截请求并修改内容。
    (底层逻辑:前端表单的必填项限制防君子不防黑客,我们需要绕过前端,直接向 API 喂“空数据”。)
🎓 实战动作 (Action)
抓包:打开 Burp 进行监听,使用 Burp 浏览器访问网页。
注册:正常填写表单,抓取合法的注册请求包。
篡改:将包发送到重放器 (Repeater),清空关键字段的值,强行发包。

0x02 实战:复现漏洞

1. 制造合法请求 打开用户注册界面,先随便输入一些合法数据进行一次正常注册。 这里邮箱填了 2@2.com,用户名和密码都是 5 个 1(随便写就行)。

2. 拦截与重放 (Repeater) 完成注册之后,在 Burp 中找到刚才的注册用户包和对应的 API。 动作:将这个请求包直接发送到 重放器 (Repeater)

3. 篡改与触发陷阱 在 Repeater 中定位到提交的 JSON 数据部分:

  • emailpassword 改为 空字符 ""
  • 顺手把前端用来多余校验的 passwordRepeat 给删了。

点击 Send 发送请求。后端 API 没有进行二次校验,直接入库,成功注册!


💡 极简总结 (Scan-Friendly)

  • 目标:注册接口 API。
  • 手段:Burp 拦截,字段留空 ""
  • 漏洞本质:后端过度信任前端,缺乏数据完整性校验
使用 Hugo 构建
主题 StackJimmy 设计