【juice-shop】★ 开篇:消失的计分板

juice-shop 这个靶场的开始

【juice-shop】★ 开篇:消失的计分板

启动服务,进入战场:http://127.0.0.1:3000


0x01 任务目标:找到“成绩单”

🎓系统任务简报

1. 核心机制:应用遍布漏洞,你的所有“战绩”都会记录在 Score Board(计分板)

2. 隐藏关卡:导航栏里找不到它,找到计分板本身就是第一个挑战。

3. 破局工具:按下 F12,线索藏在 JavaScript 代码里。


0x02 实战:顺藤摸瓜

1. 定位导航逻辑

由于侧边栏通常由前端路由控制,我们先从已知的导航项入手。

  • 操作:F12 选中侧边栏元素,观察已知的链接。
  • 线索:发现路由 /contact

2. 深入 JS 审计

在调试器 (Debugger) 中全局搜索 /contact,我们锁定了两个关键文件:

  • hacking-instructor-xxx.js
  • main.js(重点!这是前端逻辑的核心)

main.js 中搜索 Angular 的路由指令 routerLink

  • 现状:搜到 61 个结果。
  • 笨办法:一个个拼接到 URL 后面测试(如 /#/about)。
  • 终点:最终锁定 /#/score-board

🏆 挑战达成!

1
http://127.0.0.1:3000/#/score-board

0x03 代码审计:它是怎么“藏”的?

🔍 找到它 (Find It)

在源码 第 114 行,我们发现了这个路由的明文定义:

🛠️ 修复它 (Fix It)

面对三个修复方案,为什么选 Fix 2

选项 修复方式 评价 结论
Fix 1 直接删除路由 ❌ 功能被阉割 过于暴力
Fix 2 Base64 编码路径 增加搜寻成本 本关正解
Fix 3 直接显示路由 ❌ 放弃抵抗 毫无安全性可言

底层逻辑:Fix 2 使用了 atob('c2NvcmuUtYm9hcmQ=')。 虽然这只是**混淆(Obfuscation)**而非加密,但它成功让 score-board 躲过了简单的“全文搜索”,强迫黑客必须理解代码逻辑才能找到路径。


0x04 总结

作为安全研究的第一步,信息收集 (Recon) 永远是核心。计分板的隐藏告诉我们:不要只看页面上有什么,要看代码里写了什么。

使用 Hugo 构建
主题 StackJimmy 设计