【juice-shop】★★★★ GDPR Data Theft:利用订单追踪接口的信息泄露窃取他人数据

通过分析订单追踪接口的响应,发现邮箱地址的元音字符被替换为星号的规律,构造与目标用户相似的邮箱地址,欺骗数据导出功能获取他人的个人数据。

【juice-shop】★★★★ GDPR Data Theft:利用订单追踪接口的信息泄露窃取他人数据

任务简报

🎯 挑战目标
将他人的个人资料偷走而不使用注入。
💡 官方提示 (Hints)
1. 欺骗数据导出功能,以提供给您更多实际不属于您的东西。
2. 你不应该试图窃取从未在该商店下过单的普通用户的数据。
3. 由于该数据导出功能的所有操作均在服务器端完成,因此无法通过篡改 HTTP 请求来解决此问题。
4. 检查包含用户特定数据的各种服务器响应,可能会让你发现开发人员犯的错误。

实战

步骤1:触发订单追踪请求

  1. 登录账户
  2. 购买任意一个商品
  3. 进入数据导出页面

数据导出页面

  1. 使用 Burp Suite 抓包,在 HTTP 历史记录中找到订单追踪请求:
1
2
GET /rest/track-order/1e6f-c4fd320e33405cac HTTP/1.1
Host: 127.0.0.1:3000

步骤2:分析响应中的邮箱泄露

分析 /rest/track-order/ 接口的响应,发现邮箱字段中的元音字符被替换为 * 号:

1
2
3
4
{
  "email": "*dm*n@j**c*-sh.*p",
  ...
}

还原规则:

1
2
3
4
5
元音字母 a e i o u → *

*dm*n@j**c*-sh.*p
↓ 还原元音
admin@juice-sh.op

结论: 目标邮箱为 admin@juice-sh.op

步骤3:构造相似邮箱

由于应用使用元音替换来混淆邮箱,我们注册一个将元音替换为相同字符的邮箱来欺骗数据导出功能:

1
2
目标邮箱: admin@juice-sh.op
注册邮箱: edmin@juice-sh.op

原理:

1
2
3
4
5
admin@juice-sh.op → 元音替换 → *dm*n@j**c*-sh.*p
edmin@juice-sh.op → 元音替换 → *dm*n@j**c*-sh.*p

两个邮箱替换后的结果完全相同!
数据导出功能无法区分这两个邮箱 ✅

步骤4:注册并导出数据

  1. 注册新账户,邮箱使用 edmin@juice-sh.op
  2. 登录该账户
  3. 访问数据导出功能,导出个人数据

结果: 成功获取 admin@juice-sh.op 的个人数据,挑战完成!🎉

参考

使用 Hugo 构建
主题 StackJimmy 设计