首頁文章關於報價聯絡我們🌐 EN
返回首頁OWASP
OWASP Juice Shop 教學:免費實戰演練網站安全漏洞完整攻略

OWASP Juice Shop 教學:免費實戰演練網站安全漏洞完整攻略

📑 目錄

OWASP Juice Shop 教學:免費實戰演練網站安全漏洞完整攻略OWASP Juice Shop 教學:免費實戰演練網站安全漏洞完整攻略

TL;DR

💡 重點摘要:- OWASP Juice Shop 是免費的網站安全練習平台



什麼是 OWASP Juice Shop?

OWASP Juice Shop 是全球最受歡迎的網站安全練習平台。它是一個故意設計成有漏洞的線上果汁商店網站。

Juice Shop 的特點:

和 CTF(Capture The Flag)比賽不同,Juice Shop 更注重學習。每個漏洞都對應到真實世界的安全問題。

想了解 OWASP 組織和其他安全專案,可以參考 OWASP 完整指南

包含哪些漏洞類型?

Juice Shop 涵蓋的漏洞類型和 OWASP Top 10 完全對應:

漏洞類型挑戰數量難度範圍
Injection(注入攻擊)15+1-6 星
Broken Authentication(認證失效)10+1-5 星
Sensitive Data Exposure(敏感資料洩露)12+1-4 星
XSS(跨站腳本攻擊)8+1-4 星
Broken Access Control(存取控制失效)15+1-5 星
Security Misconfiguration(安全設定錯誤)8+1-3 星
Cryptographic Failures(加密失效)6+2-5 星
其他(SSRF、XXE、反序列化等)20+2-6 星

難度分級說明

Juice Shop 使用 1-6 星評級系統:

星級難度適合對象所需技能
極簡單完全新手會用瀏覽器就行
⭐⭐簡單初學者基本 Web 知識
⭐⭐⭐中等有基礎者了解 HTTP、會用開發者工具
⭐⭐⭐⭐困難進階者熟悉攻擊技術
⭐⭐⭐⭐⭐很困難專家需要創意和深度技術
⭐⭐⭐⭐⭐⭐極困難高手需要組合多種技術

建議從 1 星開始,循序漸進。



環境建置

有多種方式可以運行 Juice Shop。選擇最適合你的方法。

方法一:Docker 安裝(推薦)

最簡單的方式。只要有 Docker 就能用。

# 拉取映像檔
docker pull bkimminich/juice-shop

# 執行
docker run -d -p 3000:3000 bkimminich/juice-shop

# 開啟瀏覽器
# http://localhost:3000

完成!幾分鐘就能開始練習。

Docker Compose 版本(方便管理):

# docker-compose.yml
version: '3'
services:
  juice-shop:
    image: bkimminich/juice-shop
    ports:
      - "3000:3000"
    restart: unless-stopped
docker-compose up -d

方法二:Node.js 安裝

如果想看原始碼或修改設定,可以用這個方法。

系統需求

# 下載原始碼
git clone https://github.com/juice-shop/juice-shop.git
cd juice-shop

# 安裝相依套件
npm install

# 啟動
npm start

# 開啟 http://localhost:3000

方法三:雲端部署

想要隨時隨地練習,可以部署到雲端。

Heroku 部署

# 需要 Heroku CLI
heroku login
heroku create my-juice-shop
git push heroku main

其他選項

注意:不要把 Juice Shop 部署在公開可存取的地方而不加保護。它故意設計成有漏洞的。



挑戰攻略

以下介紹各難度的代表性挑戰和解法思路。

重要提醒:直接看解答會失去學習效果。建議先自己嘗試,卡住再來參考。

1-2 星挑戰:入門

這些挑戰幫你熟悉環境和基本技巧。

挑戰:Score Board(找到計分板)

難度:⭐

目標:找到隱藏的計分板頁面

提示

解法思路

  1. 開啟瀏覽器開發者工具(F12)
  2. 查看 JavaScript 檔案
  3. 搜尋「score」相關的路由
  4. 或者直接猜 /score-board

挑戰:DOM XSS

難度:⭐

目標:執行 DOM-based XSS 攻擊

提示

解法思路

  1. 在搜尋欄輸入:<iframe src="javascript:alert('xss')">
  2. 觀察頁面反應

挑戰:Confidential Document(機密文件)

難度:⭐

目標:找到機密文件

提示

解法思路

  1. 瀏覽網站,找到「關於我們」等頁面
  2. 查看是否有連結指向文件
  3. 嘗試存取 /ftp 目錄
  4. 下載機密文件

3-4 星挑戰:進階

需要更多技術知識和創意。

挑戰:Login Admin(登入管理員帳號)

難度:⭐⭐

目標:以管理員身份登入

提示

解法思路

  1. 在登入頁面的 Email 欄位輸入:' OR 1=1--
  2. 密碼隨便填
  3. 點擊登入

這是經典的 SQL Injection。系統執行的查詢變成:

SELECT * FROM Users WHERE email='' OR 1=1--' AND password='xxx'

OR 1=1 永遠為真,-- 註解掉後面的密碼檢查。

挑戰:Forged Feedback(偽造回饋)

難度:⭐⭐⭐

目標:以其他使用者身份提交回饋

提示

解法思路

  1. 開啟回饋頁面
  2. 使用開發者工具找到 userId 隱藏欄位
  3. 修改成其他使用者的 ID
  4. 提交表單

這展示了「不要信任客戶端」的重要性。

挑戰:Basket Access(存取他人購物車)

難度:⭐⭐⭐

目標:看到其他使用者的購物車內容

提示

解法思路

  1. 登入自己的帳號,進入購物車
  2. 觀察 API 請求,找到 /rest/basket/X
  3. 修改 X 為其他數字(如 1、2)
  4. 查看回應

這是 BOLA(Broken Object Level Authorization)漏洞,在 OWASP API Top 10 中排名第一。

5-6 星挑戰:專家級

需要深度技術知識和創意思維。

挑戰:NoSQL Injection

難度:⭐⭐⭐⭐

目標:利用 NoSQL Injection 漏洞

提示

解法思路: 需要了解 MongoDB 的查詢語法,利用 $ne$gt 等運算子進行注入。

挑戰:Forged Signed JWT

難度:⭐⭐⭐⭐⭐

目標:偽造有效的 JWT Token

提示

解法思路

  1. 取得現有的 JWT Token
  2. 解碼查看結構
  3. 研究 JWT 常見攻擊(如 alg: none
  4. 嘗試偽造 Token

挑戰:RCE(Remote Code Execution)

難度:⭐⭐⭐⭐⭐⭐

目標:在伺服器上執行任意程式碼

提示

解法思路: 需要結合多個漏洞,找到可以注入並執行程式碼的地方。這類挑戰需要深厚的功底。



學習路線建議

根據你的背景,選擇適合的學習路線。

初學者路線(0 基礎)

目標:建立基本觀念,完成 1-2 星挑戰

學習步驟

  1. 先學習基本 Web 知識(HTML、HTTP、Cookie)
  2. 學會使用瀏覽器開發者工具
  3. 完成所有 1 星挑戰
  4. 閱讀每個漏洞的說明
  5. 挑戰 2 星題目

預計時間:2-4 週

推薦資源

進階者路線(有開發經驗)

目標:理解常見漏洞原理,完成 3-4 星挑戰

學習步驟

  1. 快速完成 1-2 星熱身
  2. 學習使用 Burp Suite 或 OWASP ZAP
  3. 系統性地學習每種漏洞類型
  4. 完成 3-4 星挑戰
  5. 研究挑戰背後的原理

預計時間:4-8 週

推薦資源

專家路線(資安從業者)

目標:精通各種攻擊技術,完成 5-6 星挑戰

學習步驟

  1. 快速通關 1-4 星
  2. 深入研究高難度漏洞
  3. 嘗試不看提示解題
  4. 研究原始碼理解漏洞成因
  5. 挑戰在時間限制內完成

預計時間:持續精進

推薦資源

想從練習進階到實戰?讓專家帶你評估真實系統



其他 OWASP 練習平台

除了 Juice Shop,OWASP 還提供其他練習平台。

OWASP WebGoat

WebGoat 是 OWASP 最早的練習平台。比 Juice Shop 更偏向「教學」。

特點

安裝方式

docker pull webgoat/webgoat
docker run -p 8080:8080 -p 9090:9090 webgoat/webgoat

比較

面向Juice ShopWebGoat
風格遊戲化、自由探索教學式、按部就班
難度1-6 星廣泛偏基礎
技術棧Node.js + AngularJava
適合CTF 愛好者系統性學習者

OWASP BWA(Broken Web Applications)

BWA 是一個包含多個有漏洞應用的虛擬機。

包含的應用

特點

適合:想要比較不同練習平台的人

平台選擇建議

你的需求推薦平台
快速開始、好玩Juice Shop
系統性學習、需要教學WebGoat
多種環境、深度練習BWA
真實感、進階挑戰HackTheBox、TryHackMe


搭配 OWASP ZAP 練習

Juice Shop 和 OWASP ZAP 是絕配。一個提供漏洞環境,一個提供測試工具。

設定 ZAP Proxy

  1. 啟動 ZAP
  2. 設定瀏覽器 Proxy 指向 localhost:8080
  3. 瀏覽 Juice Shop 網站
  4. ZAP 會自動記錄所有流量

使用 ZAP 找漏洞

被動掃描: 正常瀏覽 Juice Shop,ZAP 會自動分析回應,找出明顯問題(如缺少安全 Header)。

主動掃描: 對 Juice Shop 執行主動掃描,讓 ZAP 自動測試各種攻擊向量。

右鍵點擊 Sites 中的 Juice Shop
→ Attack → Active Scan
→ 等待掃描完成
→ 查看 Alerts 標籤

手動測試: 使用 ZAP 的「Manual Request Editor」修改請求,測試 API 漏洞。

詳細的 ZAP 使用教學可以參考 OWASP ZAP 完整教學

練習建議

  1. 先手動嘗試:培養直覺
  2. 再用工具驗證:學習工具能找到什麼
  3. 比較差異:理解自動化工具的限制
  4. 研究原理:知道為什麼這樣攻擊會成功


常見問題 FAQ

Q1:Juice Shop 可以用於面試準備嗎?

可以,很有幫助。

Juice Shop 能幫你準備的面向:

技術面試

實作測驗: 一些公司會給 CTF 風格的測驗。Juice Shop 的練習能讓你更熟悉這類題目。

準備建議

  1. 至少完成 50% 的挑戰
  2. 能清楚解釋每種漏洞的原理和防護方式
  3. 準備幾個印象深刻的挑戰當故事講
  4. 了解漏洞在真實世界的影響

Q2:完成所有挑戰需要多久?

視經驗而定,從幾週到幾個月不等。

參考時間

背景預估時間
完全新手3-6 個月
有開發經驗1-3 個月
有資安基礎2-4 週
資安專家幾天到 1 週

影響因素

建議:不要追求速度,重點是真正理解每個漏洞。

Q3:有官方解答嗎?

有,但建議謹慎使用。

官方資源

使用建議

  1. 先自己嘗試至少 30 分鐘
  2. 卡住時先看「提示」而非「解答」
  3. 看了解答要理解「為什麼」
  4. 嘗試用不同方法解同一題
  5. 完成後研究防護方式

學習效果比較

真正的學習發生在卡關和思考的過程中。



結論

OWASP Juice Shop 是學習網站安全的最佳起點。免費、有趣、內容豐富。

為什麼要練 Juice Shop

學習建議

  1. 先建立環境,立刻開始
  2. 從 1 星挑戰開始,建立信心
  3. 搭配 ZAP 學習工具使用
  4. 理解漏洞原理,不只是解題
  5. 完成後嘗試其他平台

下一步

如果你開發的是 Mobile App 或 IoT 產品,也別忘了學習 OWASP Mobile 與 IoT 安全 的專屬風險。

資安學習是一條漫長的路。Juice Shop 是很好的第一步。祝你玩得愉快!

學完 Juice Shop 想檢測自己的網站?預約專業弱點掃描

OWASPGCPDocker
上一篇
OWASP LLM Top 10 完整指南:2025 AI 大型語言模型十大安全風險
下一篇
OWASP 是什麼?2025 完整指南:Top 10、ZAP 工具、安全標準一次搞懂