> ## Content Index
> Fetch the complete content index at: https://taiwanding.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# 除了 Juice Shop：Broken Crystals 與我最近收藏的鑽石靶機
- URL: https://taiwanding.com/tj-juice-shop-broken-crystals-yu-wo-zui-jin-shou-cang-de-zuan-shi-ba-ji/
- Published: 2026-07-10T05:51:21.000Z
- Updated: 2026-07-15T02:50:34.000Z
- Author: Kevin Chen
- Tags: #vulnmachines, #統整回顧

前陣子我想整理一下近年新出的資安靶機，本來以為會挖到很多沒看過的新東西，結果常見推薦翻來覆去還是：

- OWASP Juice Shop
- PortSwigger Web Security Academy
- crAPI
- CloudGoat
- GOAD
- pwn.college

這些當然都很好，但總覺得少了什麼，直到我提到 **Broken Crystals**，才發現問題在哪裡：

> 大部分推薦清單都很會列「大專案」，卻很容易漏掉個人或小團隊製作的高品質小靶機。

有些靶場沒有 OWASP Logo，GitHub Star 也沒有高到嚇人，卻跟一樣有學習價值跟最重要的好玩!

我把這類作品叫做：

# 鑽石靶機

它們不一定大，但漏洞設計漂亮、技術棧現代，而且打完真的會留下東西。

## Broken Crystals：我心中的答案

專案：

> [NeuraLegion/brokencrystals](https://github.com/NeuraLegion/brokencrystals?ref=taiwanding.com)

我最近連續寫了幾篇 Broken Crystals 實戰筆記，包括：

- 從一個 Query 參數一路打到 Root Reverse Shell
- 用 `eval` 類 SSJI 取得 RCE
- XXE 可以讀檔，卻不一定能順利打 SSRF
- 從未認證 MCP Guest Session 一路提權到 Admin RCE

玩下去之後，我越來越確定它就是我在找的那種靶場。

Broken Crystals 不是把漏洞一頁一頁排列出來，而是真的做了一套產品：

- React 前端
- Node.js 後端
- PostgreSQL
- REST API
- OpenAPI／Swagger
- GraphQL
- JWT
- 郵件功能
- MCP JSON-RPC Endpoint

裡面的漏洞也不是只有 SQLi 和 XSS：

- JWT 驗證問題
- SQL Injection
- IDOR／授權錯誤
- XPath Injection
- XXE
- SSRF
- LFI
- Prototype Pollution
- Server-side JavaScript Injection
- GraphQL 攻擊面
- MCP Session 與角色權限
- SSTI／RCE
- 敏感設定洩漏

尤其近期加入 MCP 後，Guest Session、一般使用者、Admin Tool 與 Render 功能可以串成很完整的攻擊鏈。

這種感覺很像：

> 作者不是做了很多漏洞題，而是做了一個每層信任邊界都壞掉的真實產品。

唯一要注意的是，README 寫得太詳細，第一次玩最好不要往下翻太多，不然漏洞名稱、Endpoint，甚至部分 Payload 都會被劇透。

## Damn Vulnerable RESTaurant：小型 API 攻擊鏈

專案：

> [theowni/Damn-Vulnerable-RESTaurant-API-Game](https://github.com/theowni/Damn-Vulnerable-RESTaurant-API-Game?ref=taiwanding.com)

RESTaurant 是一套以 FastAPI 和 PostgreSQL 製作的脆弱 API。

它有三種使用方式：

- 開發者找出並修補漏洞
- Ethical Hacker 手動利用
- Security Engineer 拿 SAST、DAST 等工具測試

我喜歡它的地方，是作者沒有把所有漏洞拆成互不相關的 Endpoint，攻擊者會從低權限 API 使用者開始，沿著一條設計好的路線逐步升到 Root。

環境裡也有：

- Swagger
- Redoc
- Docker
- FastAPI
- PostgreSQL
- Developer Fix Mode

整體規模不大，但主題集中。

它很適合在玩過 crAPI 後拿來做一輪完整黑箱，或反過來直接看 FastAPI 原始碼做白箱審計。

## OAuth Labs：不是只有 redirect\_uri

專案：

> [cyllective/oauth-labs](https://github.com/cyllective/oauth-labs?ref=taiwanding.com)

我最近也開始寫 OAuth Labs 的實戰系列。

這套 Lab 很符合「小而精」的標準，因為它不是在某個普通網站裡塞一顆「Login with OAuth」按鈕，而是把整套 OAuth 流程真的做出來：

- Authorization Server
- Client Application
- Victim Simulator
- Token 與 Claim
- Admin Resource
- Black-box Mode
- White-box Mode

每一關原則上只有一個預期漏洞，目標則都是想辦法取得 Admin User 的資源。

目前場景會碰到：

- 不穩定或可控制的身分 Claim
- `redirect_uri` 驗證問題
- JWT Signature 驗證錯誤
- 不安全的 JKU 處理

OAuth 漏洞真正麻煩的地方，不是單一 Payload，而是流程中有很多角色：

```text
Resource Owner
Authorization Server
Client
Redirect URI
Access Token
ID Token
Resource Server

```

只要其中一邊對另一邊多信任了一點，就可能出事。

這套 Lab 很適合把那些看完文章「好像懂了」的 OAuth 攻擊，真的走一次。

## AspGoat：終於有比較現代的 .NET 靶場

專案：

> [Soham7-dev/AspGoat](https://github.com/Soham7-dev/AspGoat?ref=taiwanding.com)

ASP.NET 的脆弱應用不是沒有，但不少都停留在較舊的 Framework 與程式風格。

AspGoat 使用較現代的 ASP.NET Core MVC，包含：

- SQL Injection
- XSS
- CSRF
- IDOR
- XXE
- SSRF
- 不安全反序列化
- Cache Poisoning
- SSTI
- Prototype Pollution

它也會對照安全與不安全的寫法，適合拿來補 .NET 白箱審計。

近期版本還加入部分 AI／LLM 類型的場景，例如 Prompt Injection、Excessive Agency 與 Insecure Output Handling。

如果平常看最多的是 PHP、Node.js 和 Python，這台可以拿來換換腦袋。

## DVGA：專門練 GraphQL

專案：

> [dolevf/Damn-Vulnerable-GraphQL-Application](https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application?ref=taiwanding.com)

DVGA 的主題非常單純：**GraphQL Security**。

環境涵蓋：

- Query
- Mutation
- Subscription
- Introspection
- Resolver
- Authorization
- Injection
- Resource Exhaustion
- Information Disclosure

它還有 Beginner 與 Expert Mode。

GraphQL 的問題常常不在 GraphQL 本身，而是開發者覺得：

> 前端不會送這種 Query，所以後端不用擋。

或者只在最外層檢查權限，Resolver 往下走後就開始放飛。

如果只玩一般 REST API，很容易漏掉 GraphQL 那種巢狀物件、Resolver 與欄位級授權的思考方式。

## VAmPI：小、乾淨，適合測工具

專案：

> [erev0s/VAmPI](https://github.com/erev0s/VAmPI?ref=taiwanding.com)

VAmPI 是 Flask 製作的脆弱 REST API，規模比 crAPI 小很多。

它支援：

- OpenAPI
- Swagger
- Postman Collection
- Token Authentication
- Vulnerable／Secure Mode

這台不一定是最有故事性的靶機，但非常適合拿來：

- 測 API Scanner
- 跑 Fuzzer
- 做 OpenAPI 自動化
- 驗證 BOLA／IDOR 測試流程
- 比較修補前後差異

想寫自己的 API Security Tool，又不想每次都啟動一整套微服務，可以先拿它開刀。

## Otto Support：目前很對味的 MCP 靶場

專案：

> [BishopFox/otto-support](https://github.com/BishopFox/otto-support?ref=taiwanding.com)

Otto Support 是 Bishop Fox 做的 Vulnerable MCP Customer Support Server。

它不是十個互不相關的 Prompt Injection 小題，而是一套完整的客服系統：

- 單一 Go Binary
- 19 個 MCP Tools
- 4 層角色
- Payment Gateway
- Customer API
- Metadata Service
- Session Signer
- SQLite

一開始是未認證狀態，接著要從 Tools 和回傳資料中找 Credential，一路升到：

```text
Unauthenticated
→ User
→ Support
→ Admin

```

而且可以直接搭配：

- Claude Code
- Codex CLI
- Cursor

這個設計比「想辦法騙 Chatbot 說出 System Prompt」有趣很多。

真正要測的是：

- Tool 權限是不是過大
- 不同角色能不能碰到不該碰的 Tool
- Credential 會不會經由 Tool Output 外洩
- Agent 會不會把低信任資料帶入高權限動作
- 多個低風險功能能不能串成完整提權鏈

如果最近想研究 MCP，我會把 Otto Support 排在非常前面。

## Vulnerable MCP Servers Lab：白箱審計很好用

專案：

> [appsecco/vulnerable-mcp-servers-lab](https://github.com/appsecco/vulnerable-mcp-servers-lab?ref=taiwanding.com)

Appsecco 這套比較像 MCP Vulnerability Collection。

每個場景是一個相對獨立的 MCP Server，內容包含：

- Indirect Prompt Injection
- 不安全的 `eval`
- Tool Poisoning
- Malicious Tool Description
- Path Traversal
- Code Execution
- Secrets／PII 洩漏
- 過期套件與供應鏈問題

它不像 Otto Support 那麼產品化，但很適合逐一打開原始碼，直接做：

```text
Tool Definition
→ Input
→ Handler
→ Sink
→ Agent 行為

```

對想從傳統 Web Code Audit 轉進 AI Red Team 的人，這套比較容易建立基本手感。

## DVMCP：十關式 MCP 教材

專案：

> [harishsg993010/damn-vulnerable-MCP-server](https://github.com/harishsg993010/damn-vulnerable-MCP-server?ref=taiwanding.com)

Damn Vulnerable MCP Server，簡稱 DVMCP，共有十個漸進式 Challenge：

1. Prompt Injection
2. Tool Poisoning
3. Excessive Permissions
4. Rug Pull
5. Tool Shadowing
6. Indirect Prompt Injection
7. Token Theft
8. Malicious Code Execution
9. Remote Access
10. Multi-vector Attack

它比較不像真實產品，而像一套分類清楚的教材。

所以我會這樣分：

```text
想先理解 MCP 攻擊分類：DVMCP
想做單一漏洞白箱：Vulnerable MCP Servers Lab
想打一條完整產品攻擊鏈：Otto Support

```

## AIGoat 與 LLMGoat

這兩套名字很像，但方向不完全一樣。

### AIGoat

專案：

> [AISecurityConsortium/AIGoat](https://github.com/AISecurityConsortium/AIGoat?ref=taiwanding.com)

AIGoat 是一套本機運行的 AI 電商靶場，預設透過 Ollama 跑模型。

它目前提供：

- 17 個 Attack Labs
- 9 個 CTF Challenges
- 3 層 Progressive Defense
- Prompt Injection
- System Prompt Leakage
- RAG Poisoning
- Supply Chain Backdoor
- Excessive Agency
- Resource Abuse

我覺得它有價值的地方，是可以切換不同防禦層級。

不是只告訴你「這裡可以 Prompt Injection」，而是讓你看：

```text
完全沒防禦
→ 加入輸入檢查
→ 加入意圖分類
→ 加入輸出過濾
→ 加入 Guardrails

```

然後再測原本的攻擊還能不能用。

### LLMGoat

專案：

> [SECFORCE/LLMGoat](https://github.com/SECFORCE/LLMGoat?ref=taiwanding.com)

LLMGoat 有十個 Challenge，分別對應 OWASP LLM Top 10。

預設使用本機 Gemma 2 模型，題目有些需要傳統資安知識，有些只需要自然語言操控。

相較之下：

```text
LLMGoat：比較像循序課程
AIGoat：比較像完整 AI Security Playground

```

兩套都能本機跑，但模型本身會吃 RAM 和 CPU，不像一般 Flask 靶機那麼輕。

# OWASP FinBot CTF：Agentic AI 版 Juice Shop

專案：

> [OWASP FinBot CTF](https://github.com/OWASP-ASI/FinBot-CTF-workstream?ref=taiwanding.com)

FinBot CTF 把自己定位成：

> Juice Shop for Agentic AI

它模擬一套金融與供應商管理平台，裡面的 Agent 真的能使用 Tools 與 MCP，而不是只能聊天。

攻擊面包含：

- Goal Manipulation
- Memory Poisoning
- Policy Bypass
- Tool Poisoning
- Data Exfiltration
- Agent Misbehavior
- RCE

它還有公開 Live System，想試的話不一定要先架本機環境。

FinBot 的規模比本文前面那些小靶場大，但它確實代表近期靶場的另一個方向：

> 不再只測模型會不會說錯話，而是測模型拿到真實工具權限後，會不會做錯事。

# 那些大型經典，還是值得玩

強調小型精品，不代表大型靶場就過時了。

## Juice Shop v20

Juice Shop 在 2026 年進入 v20，商店和 Coding Challenge UI 都大幅改版，也加入：

- Chatbot Prompt Injection
- Greedy Chatbot Manipulation
- AI Debugging
- System Prompt 相關場景

以前玩過，不代表現在不用再玩。

## PortSwigger Web Security Academy

對 Web Bug Bounty 而言，PortSwigger 仍然是最穩的主線。

近年的內容已經延伸到：

- API Testing
- Web Cache Deception
- NoSQL Injection
- OAuth
- JWT
- Prototype Pollution
- Web LLM Attacks
- LLM Excessive Agency

而且題目品質和解釋通常都很穩。

## crAPI

想練現代 API、微服務與 Business Logic，crAPI 仍然很有代表性。

## GOAD

想進企業內網、Kerberos、ADCS、Delegation 與 SCCM，GOAD 仍然是大工程級的必玩項目。

缺點就是重。

不是執行一條 Docker Command 就結束的那種重。

## pwn.college

想從 Web 跨進 Binary Exploitation，先去 pwn.college，通常比直接跳 ExploitGym 合理。

## VulnerableApp

適合拿來測 SAST、DAST、Scanner 與修補後的 Regression，不一定是最有故事性的 CTF，但作為工具測試環境很完整。

# 最後

大型平台很容易被找到，也通常有比較完整的教材和社群。

但我現在也喜歡這些：

- 一個人或小團隊製作
- Docker 一開就能玩
- 技術棧夠現代
- 漏洞不是硬塞進去
- 可以先黑箱、再白箱
- 幾個問題能串成完整 Kill Chain

Broken Crystals、OAuth Labs、RESTaurant 和 Otto Support，就是這一類。

它們未必有幾百道題目，卻會讓你在打完之後，不只記住一條 Payload，而是真的理解：

- 系統信錯了什麼
- 權限邊界在哪裡破掉
- 資料如何跨越不同元件
- 幾個低風險問題怎麼串成高風險結果
- 修補到底應該放在哪一層

這種「看起來像產品，只是被故意做壞」的靶場，是我也想收藏的鑽石靶機。

## 專案清單

### Web／API

- [Broken Crystals](https://github.com/NeuraLegion/brokencrystals?ref=taiwanding.com)
- [Damn Vulnerable RESTaurant](https://github.com/theowni/Damn-Vulnerable-RESTaurant-API-Game?ref=taiwanding.com)
- [OAuth Labs](https://github.com/cyllective/oauth-labs?ref=taiwanding.com)
- [AspGoat](https://github.com/Soham7-dev/AspGoat?ref=taiwanding.com)
- [DVGA](https://github.com/dolevf/Damn-Vulnerable-GraphQL-Application?ref=taiwanding.com)
- [VAmPI](https://github.com/erev0s/VAmPI?ref=taiwanding.com)
- [OWASP crAPI](https://github.com/OWASP/crAPI?ref=taiwanding.com)

### MCP／LLM

- [Otto Support](https://github.com/BishopFox/otto-support?ref=taiwanding.com)
- [Vulnerable MCP Servers Lab](https://github.com/appsecco/vulnerable-mcp-servers-lab?ref=taiwanding.com)
- [Damn Vulnerable MCP Server](https://github.com/harishsg993010/damn-vulnerable-MCP-server?ref=taiwanding.com)
- [AIGoat](https://github.com/AISecurityConsortium/AIGoat?ref=taiwanding.com)
- [LLMGoat](https://github.com/SECFORCE/LLMGoat?ref=taiwanding.com)
- [OWASP FinBot CTF](https://github.com/OWASP-ASI/FinBot-CTF-workstream?ref=taiwanding.com)

### Cloud／AD／Pwn

- [CloudGoat](https://github.com/RhinoSecurityLabs/cloudgoat?ref=taiwanding.com)
- [GOAD](https://github.com/Orange-Cyberdefense/GOAD?ref=taiwanding.com)
- [pwn.college](https://pwn.college/?ref=taiwanding.com)
- [ExploitGym](https://github.com/sunblaze-ucb/exploitgym?ref=taiwanding.com)

### 大型綜合平台

- [OWASP Juice Shop](https://github.com/juice-shop/juice-shop?ref=taiwanding.com)
- [PortSwigger Web Security Academy](https://portswigger.net/web-security?ref=taiwanding.com)
- [OWASP VulnerableApp](https://github.com/SasanLabs/VulnerableApp?ref=taiwanding.com)