網頁滲透測試 OWASP ZAP

Ivan Cheng
6 min readJan 6, 2023

Zed Attack Proxy (ZAP) 是一套免費的開源滲透測試工具,由 Open Web Application Security Project (OWASP)負責維護。

ZAP 的核心技術是所謂的中間人代理,它位於測試人員的瀏覽器和 Web 應用程序之間,因此它可以攔截和檢查瀏覽器和 Web 應用程序之間發送的消息,然後將這些數據修改並轉發到目的地。

根據被測試的漏洞類型或所進行的測試類型共有以下幾種

  • 漏洞評估:掃描並分析系統的安全問題
  • 滲透測試:系統接受模擬惡意攻擊者的分析和攻擊
  • 運行時測試:系統接受最終用戶的分析和安全測試
  • 代碼審查:系統代碼經過詳細的審查和分析,專門尋找安全漏洞。

大家可透過官方提供的載點進行安裝,一直按下一步到完成就可以了。

安裝 OWASP ZAP 要求安裝 JRE 11 以上版本,記得先下載並安裝好。

當您第一次啟動 ZAP 時,系統會詢問您是否要保留 ZAP 會話。如果您不保留會話,當您退出 ZAP 時,這些文件將被刪除。

我們先選擇否,此時不想保留此會話,然後單擊開始。

Local Servers / Proxies

我們先選擇 Tools 然後點選 Options

接下來到 Network 中的 Local Servers / Proxies

選擇一個確認沒有在使用的 Port 即可

Proxy 設定

接下來我們希望瀏覽器是透過 ZAP 的 Local Servers / Proxies 進行代理

在手動 Proxy 設定中,開啟使用 Proxy 伺服器,並填寫位址與連接埠。

設定完成後,ZAP 就會開始收取所有流經瀏覽器的流量了。

取得 OWASP ZAP 憑證

這個時候如果您去瀏覽 HTTPS 的網站時,會出現 HSTS 的警告訊息

因為瀏覽器用的那個憑證已經不是原本連接的那個伺服器的憑證,而變成了OWASP Zed Attack Proxy Root CA,然而我們的目前並沒有這個憑證,所以接下來就是去 ZAP 取得憑證並匯入信任區。

到剛剛 Network 中的 Server Certificates ,點選生成憑證並儲存憑證。

接下來到 chrome://settings 中的隱私和安全性,點選安全性。

點選管理裝置憑證

點選匯入

匯入檔案選擇剛剛儲存的憑證

憑證存放區選擇受信任的根憑證授權單位

提示安全性警告,選擇是。

到這邊憑證安裝完成,此時不再出現 HSTS 的警告訊息了。

OWASP ZAP 自動掃描

用戶只需要輸入要測試的地址(URL),ZAP Spider 便會將整個網站內的分頁進行掃瞄,並且顯示出不同階級的警告。

選擇 Automated Scan

輸入想要檢測的 URL 並點選 Attack 就可以了

在快速攻擊過程中,ZAP做了以下幾件事:

  • 使用爬蟲抓取被測網站的所有頁面
  • 在頁面抓取的過程中被動掃描所有獲得的頁面
  • 抓取完畢後用主動掃描的方式分析頁面的功能和參數

我們可以切換到 Alert 頁籤,可以看到掃描到不少問題。

除了顯示攻擊種類之外,其他有關這個漏洞的資訊也會顯示,如攻擊方法、漏洞描述以及解決方案。

我們就挑選 Vulnerable JS Library 來看看

風險:中等

描述:識別到 jquery 1.11.1 存在漏洞

其他訊息:

  • CVE-2020–11023
  • CVE-2020–11022
  • CVE-2015–9251
  • CVE-2019–11358

解決方案:建議升級到最新的 jquery 版本

報表生成

選擇 Report 並點選 Generate Report

Template 可以挑選匯出的格式,建議匯出 html 或者 pdf

報告 pdf 格式如下

除了簡單的滲透測試,也可以利用 ZAP 攔截封包內容進行修改後再送出,自行對想要檢驗的安全性做測試。

ZAP 可以滿足一些初級的安全測試需求,可以先透過它進行弱點掃描確認之前的弱點已經被修掉了再送專門的資安公司進行審查,減少來回的時間等待的寶貴時間。

參考文件

--

--