本週進入第一個實作主題,我們將實際體驗如何使用 OWASP ZAP(Zed Attack Proxy) 掃描網站漏洞。
ZAP 是一款由 OWASP 開發的開源工具,可協助測試 Web 應用程式的安全性,檢測如 SQL Injection、XSS、CSRF、錯誤設定等常見漏洞。它同時適合資安人員、開發者與學生使用,操作介面直覺、報告清晰。
⸻
一、實作目標
1. 認識 OWASP ZAP 的基本功能與架構。
2. 學會設定代理攔截與自動掃描。
3. 探索網站中潛在的 OWASP Top 10 風險。
4. 了解掃描報告的結構與解讀方式。
⸻
二、環境與準備
系統需求:
• 作業系統:Windows / macOS / Linux 皆可。
• Java:需安裝 Java 11 以上版本(ZAP 為 Java 應用)。
• 測試對象:可使用本機測試網站、DVWA(Damn Vulnerable Web App)、或 OWASP Juice Shop。
下載與安裝:
1. 前往 https://www.zaproxy.org/download/ 下載最新版。
2. 安裝後啟動 ZAP,首次開啟可選擇「Persistent Session = No」。
3. 若瀏覽器為 Chrome / Firefox,建議安裝 ZAP Proxy 擴充元件 或手動設定 Proxy。
⸻
三、ZAP 基本概念
ZAP 的核心功能包括:
• Proxy 攔截:監控與修改瀏覽器與網站間的 HTTP/HTTPS 請求。
• Spider 掃描:自動爬取網站連結與輸入點。
• Active Scan:對已發現的頁面進行主動測試(模擬攻擊)。
• Alert 分析:統整發現的弱點,依嚴重度分類。
• Report 輸出:可生成 HTML、XML、PDF 報告。
ZAP 的邏輯可理解為:
攔截 → 掃描 → 分析 → 報告
⸻
四、實作步驟
步驟 1:設定 Proxy
1. 打開 ZAP → 選擇 Tools → Options → Network → Local Proxy。
2. 確認 Proxy Port 為 8080。
3. 在瀏覽器中設定手動 Proxy 為 localhost:8080。
4. 測試是否能攔截封包:開啟任一網站,應能在 ZAP 的「Sites」欄中看到連線紀錄。
⸻
步驟 2:進行 Spider(爬網掃描)
1. 在左側「Sites」樹狀列表中選擇測試網站。
2. 右鍵 → 選擇「Attack → Spider」。
3. ZAP 會開始自動搜尋所有頁面與輸入點。
4. 完成後可展開節點查看掃描的目標。
⸻
步驟 3:啟動 Active Scan(主動掃描)
1. 再次右鍵點擊網站節點 → 「Attack → Active Scan」。
2. ZAP 會自動對輸入點嘗試常見漏洞攻擊,如 SQL Injection、XSS、Command Injection 等。
3. 掃描完成後,切換到下方「Alerts」分頁,可查看結果清單。
⸻
步驟 4:檢視與解讀報告
• 點擊每一項警示(Alert)可查看詳細資訊:
• 弱點描述
• 攻擊範例 Payload
• 風險等級(High / Medium / Low / Informational)
• 修補建議(Remediation)
• 可透過「Report → Generate Report」匯出 HTML 報告。
• 建議儲存在專案目錄中,供後續分析或紀錄使用。
⸻
五、補充與建議
• 僅測試合法目標:ZAP 屬於主動掃描工具,請勿對非授權網站執行測試。
• 結合 OWASP Juice Shop:這是官方的合法靶場網站,非常適合練習。
• 避免過度掃描:主動掃描可能對伺服器造成負擔,請控制範圍。
• 搭配手動分析:ZAP 偵測不代表漏洞可被實際利用,需人工驗證。
⸻
六、學習重點回顧
1. ZAP 是 OWASP 生態系中最實用的安全測試工具之一。
2. 可自動化檢測常見漏洞,但仍需人工驗證與判斷。
3. 學會閱讀報告,理解漏洞原理比單純找漏洞更重要。
⸻
結語
透過本次實作,你已掌握 Web 弱點掃描的基本流程。
安全測試並非單次行為,而應成為開發與部署的一部分。
在之後的章節中,我們會更進一步介紹如何解讀掃描結果、優先修補風險,並逐步導入 DevSecOps 概念,讓安全真正融入開發流程。
⸻
明天(Day 18)將回到理論主題,介紹 Nmap 掃描與網路探測原理,作為理解網路層資安的基礎。