首頁文章關於報價聯絡我們🌐 EN
返回首頁OWASP
OWASP ZAP 教學:免費弱點掃描工具下載、安裝到報告輸出完整指南

OWASP ZAP 教學:免費弱點掃描工具下載、安裝到報告輸出完整指南

📑 目錄

OWASP ZAP 教學:免費弱點掃描工具下載、安裝到報告輸出完整指南OWASP ZAP 教學:免費弱點掃描工具下載、安裝到報告輸出完整指南

TL;DR

💡 重點摘要:- OWASP ZAP(Zed Attack Proxy)是免費開源的網站弱點掃描工具



什麼是 OWASP ZAP?

OWASP ZAP(Zed Attack Proxy)是全球最受歡迎的免費網站弱點掃描工具。由 OWASP 社群維護,專為找出網站安全漏洞而設計。

ZAP 的全名是 Zed Attack Proxy。它扮演的角色是「中間人代理」。當你瀏覽網站時,所有流量都會經過 ZAP。這讓 ZAP 能夠分析每一個 HTTP 請求和回應,找出潛在的安全問題。

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

誰需要學 OWASP ZAP?

ZAP 適合這些人使用:

ZAP vs Burp Suite:該選哪個?

市面上最常被比較的兩個工具就是 ZAP 和 Burp Suite。

比較項目OWASP ZAPBurp Suite
價格完全免費免費版功能有限,Pro 版每年 $449 美元
開源
自動化掃描免費提供Pro 版才有
API 掃描支援支援
CI/CD 整合原生支援需 Pro 版
社群支援活躍活躍
學習曲線中等中等偏高

建議:預算有限或剛入門,選 ZAP。需要更進階的手動測試功能,考慮 Burp Suite Pro。

ZAP 能做什麼?不能做什麼?

ZAP 能做到的事

ZAP 的限制



安裝與環境設定

ZAP 支援多種安裝方式。選擇最適合你環境的方法。

Windows 安裝

  1. 前往 ZAP 官方下載頁面
  2. 下載 Windows Installer(.exe 檔案)
  3. 執行安裝程式,按照提示完成安裝
  4. 安裝完成後,從開始功能表啟動 ZAP

系統需求

macOS 安裝

方法一:使用 DMG 安裝檔

  1. 下載 macOS DMG 檔案
  2. 開啟 DMG,將 ZAP 拖曳到 Applications 資料夾
  3. 首次開啟時,按住 Control 點擊,選擇「開啟」

方法二:使用 Homebrew

brew install --cask zap

Linux 安裝

Debian/Ubuntu

# 下載 .deb 套件
wget https://github.com/zaproxy/zaproxy/releases/download/v2.15.0/ZAP_2_15_0_unix.sh

# 執行安裝
chmod +x ZAP_2_15_0_unix.sh
./ZAP_2_15_0_unix.sh

使用 Snap

sudo snap install zaproxy --classic

Docker 部署(推薦)

Docker 是最乾淨的部署方式。不用擔心系統相依性問題。

# 拉取最新映像檔
docker pull zaproxy/zap-stable

# 執行 ZAP
docker run -u zap -p 8080:8080 -p 8090:8090 -i zaproxy/zap-stable zap-webswing.sh

執行後,開啟瀏覽器前往 http://localhost:8080/zap/ 即可使用網頁版介面。

Headless 模式(適合 CI/CD)

docker run -v $(pwd):/zap/wrk/:rw -t zaproxy/zap-stable zap-baseline.py \
  -t https://example.com \
  -r report.html


ZAP 功能詳解

ZAP 提供四種主要的掃描功能。理解它們的差異,才能有效運用。

被動掃描(Passive Scan)

被動掃描是最安全的掃描方式。它只分析經過 ZAP 的流量,不會發送任何額外請求。

被動掃描能發現

使用方式

  1. 設定瀏覽器 Proxy 指向 ZAP(預設 localhost:8080)
  2. 正常瀏覽目標網站
  3. ZAP 會自動分析所有流量
  4. 查看「Alerts」標籤頁檢視發現的問題

被動掃描是零風險的。可以用在任何網站上,包括正式環境。

主動掃描(Active Scan)

主動掃描會實際發送攻擊封包來測試網站。這是找出漏洞最有效的方式,但也有風險。

主動掃描能發現

使用方式

  1. 先用 Spider 或手動瀏覽收集網站結構
  2. 在 Sites 樹狀圖中,右鍵點擊目標
  3. 選擇「Attack」→「Active Scan」
  4. 設定掃描策略,點擊「Start Scan」

警告:主動掃描可能造成系統負載增加、產生大量日誌、甚至影響系統穩定。只對你有權限測試的網站使用。

Spider 爬蟲

Spider 會自動探索網站的所有連結和頁面。這是掃描前的必要步驟。

Spider 的功能

傳統 Spider vs AJAX Spider

類型適用場景特點
傳統 Spider傳統網站、靜態頁面快速、資源消耗低
AJAX SpiderSPA、JavaScript 重度網站模擬瀏覽器、較慢但更完整

使用 AJAX Spider

右鍵點擊目標 URL → Attack → AJAX Spider

對 React、Vue、Angular 等現代前端框架網站,建議兩種 Spider 都執行。

Fuzzer 模糊測試

Fuzzer 是進階功能。它會對特定參數發送大量變形的輸入,測試系統的處理能力。

Fuzzer 使用場景

使用方式

  1. 在 History 中找到目標請求
  2. 右鍵選擇「Attack」→「Fuzz」
  3. 選擇要測試的參數位置
  4. 選擇 Payload 列表(ZAP 內建多種)
  5. 開始 Fuzzing


實戰教學

理論講完了。現在動手做。

掃描本地開發環境

這是最安全的練習方式。掃描自己的開發環境。

步驟

  1. 啟動你的本地開發伺服器

    # 例如 Node.js 專案
    npm run dev
    # 假設運行在 http://localhost:3000
    
  2. 啟動 ZAP 並設定 Proxy

    • 開啟 ZAP
    • 預設 Proxy 在 localhost:8080
  3. 設定瀏覽器使用 ZAP Proxy

    • 推薦使用 Firefox(內建 Proxy 設定)
    • 或安裝 FoxyProxy 擴充功能
    • 設定 HTTP Proxy 為 127.0.0.1:8080
  4. 瀏覽目標網站

    • 用設定好的瀏覽器訪問 http://localhost:3000
    • 點擊所有連結、填寫所有表單
    • ZAP 會記錄所有請求
  5. 執行主動掃描

    • 在 Sites 面板找到 localhost:3000
    • 右鍵 →「Attack」→「Active Scan」
    • 等待掃描完成
  6. 檢視結果

    • 切換到「Alerts」標籤頁
    • 依嚴重性排序查看

掃描 OWASP Juice Shop

Juice Shop 是 OWASP 官方的漏洞練習平台。非常適合學習使用。

詳細的 Juice Shop 攻略可以參考 OWASP Juice Shop 教學

快速建置 Juice Shop

docker run -d -p 3000:3000 bkimminich/juice-shop

開啟瀏覽器訪問 http://localhost:3000,你會看到一個果汁商店網站。

ZAP 掃描 Juice Shop

  1. 在 ZAP 輸入目標 URL:http://localhost:3000
  2. 執行 Spider 收集所有頁面
  3. 執行 Active Scan
  4. 查看發現的漏洞

Juice Shop 故意設計了超過 100 個漏洞。ZAP 能找出大部分自動化可偵測的問題。

掃描正式網站注意事項

掃描正式環境網站之前,請注意以下幾點:

法律責任

技術注意事項

最佳實務



報告輸出與解讀

掃描完成後,產生報告是重要的一步。

報告格式選擇

ZAP 支援多種報告格式:

格式適用場景特點
HTML給人看的報告美觀、易讀、可用瀏覽器開啟
XML系統整合結構化資料、適合程式處理
JSONAPI 整合現代格式、易於解析
Markdown文件整合可嵌入其他文件

產生報告

  1. 選單:「Report」→「Generate Report」
  2. 選擇報告格式
  3. 選擇要包含的內容(警告等級、詳細程度)
  4. 指定輸出路徑
  5. 點擊「Generate」

報告內容解讀

一份 ZAP 報告通常包含以下區塊:

1. 摘要區(Summary)

2. 警告詳情(Alert Details)

每個警告包含:

3. 按風險等級優先處理

建議的處理順序:

  1. High:立即修復,可能被立即利用
  2. Medium:盡快修復,有一定風險
  3. Low:評估後決定是否修復
  4. Informational:了解即可,通常是建議事項

誤報判斷技巧

ZAP 不完美。它會產生誤報(False Positive)。

常見誤報情況

判斷方法

  1. 手動驗證:嘗試重現 ZAP 的攻擊
  2. 檢查證據:看「Evidence」欄位是否合理
  3. 比對原始碼:確認該位置的處理邏輯
  4. 調整信心度門檻:Low Confidence 的警告優先複查

記錄誤報: 在 ZAP 中可以將確認的誤報標記為「False Positive」,避免重複報告。

看不懂掃描報告?讓專家幫你解讀並提供修復建議



CI/CD 整合

將安全掃描整合進 CI/CD Pipeline,是 DevSecOps 的核心實踐。

ZAP CLI 工具

ZAP 提供三種自動化掃描腳本:

腳本用途掃描強度
zap-baseline.py快速基線掃描被動掃描為主
zap-full-scan.py完整掃描被動 + 主動掃描
zap-api-scan.pyAPI 掃描針對 OpenAPI/SOAP

GitHub Actions 整合

在你的專案中建立 .github/workflows/zap-scan.yml

name: ZAP Security Scan

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  schedule:
    - cron: '0 0 * * 0'  # 每週日執行

jobs:
  zap-scan:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: ZAP Baseline Scan
        uses: zaproxy/[email protected]
        with:
          target: 'https://your-staging-site.com'
          rules_file_name: '.zap/rules.tsv'

      - name: Upload Report
        uses: actions/upload-artifact@v3
        with:
          name: zap-report
          path: report_html.html

設定忽略規則(.zap/rules.tsv)

10015	IGNORE	(Incomplete or No Cache-control)
10021	IGNORE	(X-Content-Type-Options Header Missing)

GitLab CI 整合

.gitlab-ci.yml 加入:

zap-scan:
  stage: security
  image: zaproxy/zap-stable
  script:
    - mkdir -p /zap/wrk
    - zap-baseline.py -t $STAGING_URL -r report.html
  artifacts:
    paths:
      - report.html
    expire_in: 1 week
  only:
    - merge_requests
    - main

Jenkins 整合

使用 Official ZAP Jenkins Plugin:

  1. 安裝「Official OWASP ZAP」Plugin
  2. 在 Pipeline 腳本中加入:
pipeline {
    agent any
    stages {
        stage('Security Scan') {
            steps {
                script {
                    startZap(host: 'localhost', port: 8090)
                    runZapCrawler(host: 'https://your-app.com')
                    runZapAttack(host: 'https://your-app.com')
                    archiveZap()
                }
            }
        }
    }
}

想在 DevOps 流程導入安全掃描?我們有豐富經驗



進階設定

掌握基礎後,這些進階功能能提升掃描效果。

自訂掃描規則

ZAP 內建上百條掃描規則。你可以根據需求調整。

調整掃描策略

  1. 「Analyze」→「Scan Policy Manager」
  2. 選擇或新增一個 Policy
  3. 對每條規則設定:
    • Threshold:觸發警告的門檻(Off / Low / Medium / High)
    • Strength:測試強度(影響掃描速度)

常見調整建議

認證掃描設定

很多網站需要登入才能看到完整功能。ZAP 支援多種認證方式。

Form-Based 認證

  1. 「右鍵目標 URL」→「Include in Context」→「New Context」
  2. 在 Context 中選擇「Authentication」
  3. 選擇「Form-Based Authentication」
  4. 設定登入 URL 和表單參數
  5. 設定登出指標(Logged-out indicator)

Session Management

設定登入使用者

  1. 在 Context 的「Users」區塊
  2. 新增使用者和對應憑證
  3. 選擇「Forced User Mode」強制使用特定身份

API 掃描

針對 API 的掃描需要不同的方法。

匯入 API 定義

ZAP 支援匯入:

匯入方式

  1. 「Import」→「Import an OpenAPI definition」
  2. 選擇本地檔案或輸入 URL
  3. ZAP 會自動建立所有端點

API 掃描最佳實務

更多 API 安全知識,可以參考 OWASP API Top 10



常見問題 FAQ

Q1:OWASP ZAP 是免費的嗎?

完全免費。ZAP 是 OWASP 社群維護的開源專案。不管是個人使用、商業使用、還是整合進產品中,都不需要付費。原始碼在 GitHub 上公開,任何人都可以貢獻。

Q2:掃描別人的網站合法嗎?

未經授權的掃描可能違法。即使是「善意」的安全測試,沒有取得網站擁有者的書面授權,就對其進行掃描,在許多國家都屬於非法行為。建議:

Q3:ZAP 能發現所有漏洞嗎?

不能。ZAP 是自動化工具,有其限制:

ZAP 應該作為安全測試的起點,而非終點。搭配人工滲透測試,才能獲得更完整的安全評估。



結論

OWASP ZAP 是資安工程師必備的工具。免費、開源、功能強大。想進一步練習,可以試試 OWASP Mobile 與 IoT 安全 學習行動裝置測試技巧。

重點回顧:

  1. 安裝簡單:支援多平台,Docker 部署最方便
  2. 四大功能:被動掃描、主動掃描、Spider、Fuzzer
  3. 報告專業:多格式輸出,方便不同用途
  4. CI/CD 友善:原生支援自動化整合

學會 ZAP,你就能:

下一步建議:

自己掃描不放心?預約專業弱點掃描服務

OWASP
上一篇
Python AI API 教學|2026 年用 Python 串接各大 AI API 完整指南
下一篇
OWASP LLM Top 10 完整指南:2025 AI 大型語言模型十大安全風險