【juice-shop】★ Outdated Allowlist:过期的加密货币地址

利用代码中残留的过期加密货币地址重定向,绕过现代编译器的清理机制。

【juice-shop】★ Outdated Allowlist:过期的加密货币地址

0x01 任务简报

💡 提示 (Hints)
  1. 在从代码中移除对这些地址的引用时,开发人员有些马虎。
  2. 更具体地说,他们的代码存在严重疏漏,甚至连 Angular 编译器都无法自动清理这些问题。
  3. 当然,仅直接访问任何加密货币链接并不足以解决该挑战。

0x02 实战:复现漏洞

🔎 第一步:定位重定向端点

根据题目线索"重定向(redirect)",需要在 main.js 中寻找相关代码。打开浏览器开发者工具,在 Sources 标签页找到 main.js 文件。

在 Sources 中找到 main.js

🔍 第二步:搜索并筛选

将 main.js 格式化后,使用搜索功能:

  1. 首次搜索:搜索 redirect

    • 结果:18 个匹配
    • 问题:大多数结果不相关
  2. 精确搜索:搜索 /redirect?to

    • 结果:8 个匹配
    • 效果:范围大幅缩小,找到了真正的重定向端点

搜索 /redirect?to 的结果

✅ 第三步:逐一尝试并完成挑战

逐个尝试搜索结果中的加密货币地址链接,最终找到有效的过期地址:

1
http://127.0.0.1:3000//redirect?to=https://blockchain.info/address/1AbKfgvw9psQ41NbLi8kufDQTezwG8DRZm

访问该链接即可完成挑战。


0x03 参考资料

使用 Hugo 构建
主题 StackJimmy 设计