iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0
Security

資安小白—30天學習滲透測試with OWASP ZAP (Zed Attack Proxy)系列 第 3

Day03—熟悉ZAP基本操作與掃描測試

  • 分享至 

  • xImage
  •  

大家好!我目前正在就讀資訊類科系,平常以接觸程式撰寫居多,對於資安領域的技術沒有太多了解/images/emoticon/emoticon16.gif因此希望藉由這30天的機會,以OWASP ZAP作為主要工具,從實際操作和分析,從環境架設、基本掃描到進階弱點發掘,一步步建立資安思維。
  我將學習如何利用ZAP自動化及主動掃描常見的資安漏洞,並理解其背後的原理,例如SQL Injection、XSS等,讓我從「資安小白」進化成具備基本滲透測試技能的「資安入門者」。


今日內容概要:

瞭解ZAP的基本操作,例如Site Tree、主動\被動掃描、Scope、Alerts等概念。

Sites Tree

為Sites tab(網站標籤)的其中一種,是一個能夠「以樹狀結構」呈現被測試過、掃描過的URL的工具,以URL的HTTP方法和參數名稱來區分,結構中的每個節點都代表著網站中的不同功能,它透過對相同功能重複掃描的避免、節點識別等功能,幫助安全測試人員更好地理解和分析網站的結構,並方便進行後續的滲透測試和漏洞挖掘。
例外狀況:

  1. 結構參數 Structural Parameters: 指當URL的參數值定義了網站的結構時,ZAP可能將其視為資料而非結構,將會被歸類於同一個節點中,如官方舉例的action=add和 action=delete,可能被視為相同的節點,導致只有一個URL會被攻擊測試,另一個不會。
  • 解決方法: 將action參數定義為結構參數(Structural Parameters),讓ZAP能夠區分不同的功能。
  1. 數據驅動節點 Data Driven Nodes: 指當URL中的某一個部分實際上為資料而非功能時,ZAP可能會為每個資料創建獨立的節點。
  • 解決方法: 將相關路徑的元素定義為Data Driven Content(數據驅動內容),使路徑元素包含數據而不是網站結構,ZAP重新掃描該URL,這些將合併成一個節點,ZAP也只會攻擊他們一次。

Contexts上下文

也是Sites tab(網站標籤)的其中一種,指將一組URL關聯在一起的方式,他的主要功能為:

  1. 透過正規表達式,可以指定哪些URL屬於某個特定的Context。
  2. 每個Context可以設定不同的身份驗證方法,例如表單登入、JSON驗證、HTTP 驗證等,以及會話管理策略,例如Cookie、HTTP Header或Scripts。
  3. 可以為每個Context定義多個使用者,並為每個使用者設定不同的權限和角色。
  4. 在Access Control Context Options面板中,可以為每個使用者設定特定的存取權限,定義哪些資源對哪些使用者開放。

Structural Parameters結構參數 https://ithelp.ithome.com.tw/upload/images/20250816/20169022Cm8s7gf8Jm.png

(這部分我還是不太理解...)
指URL中,決定了應用程式邏輯結構的參數,例如官方所舉例的,在單頁應用程式(SPA)中,page參數可能用於指示當前顯示的頁面,page參數值(如 p1、p2、p3)決定了應用程式顯示的頁面。然而,如果ZAP未將page定義為結構參數,它可能將這三個URL視為同一個節點,就無法分別測試每個頁面的安全性了。

Data Driven Content資料驅動內容

指一種結構修飾器(Structural Modifier),用於識別URL路徑中代表資料的部分,而非應用程式結構的一部分。
以官方舉例來說:

https://www.example.com/app/company1/aaa?ddd=eee
https://www.example.com/app/company2/aaa?ddd=fff
https://www.example.com/app/company3/aaa?ddd=ggg

上述這些URL中,company1、company2和company3是資料,而非應用程式結構的一部分,如果ZAP未將company標記為資料驅動內容,它會將這三個URL視為三個獨立的節點進行掃描,重複測試相同的頁面。

Passive Scan被動掃描

指不會對測試目標發送額外請求的安全檢測,ZAP指針對使用者或自動化工具本就送出的HTTP/HTTPS請求與回應(流量)進行分析,不會修改請求,也不會有攻擊行為,且只要有流量經過ZAP Proxy就會自動進行被動掃描。但被動掃描只能「找出潛在漏洞」,無法「驗證漏洞」(主動掃描可以)。

Active Scan主動掃描

指用對選定的目標進行攻擊,可能是對網站、系統或應用程式等,主動發送額外的測試請求,常是注入惡意的playload,模擬各種攻擊手法,如SQL注入、CSRF、XSS等,驗證潛在的安全漏洞是否存在,但使用這項方式的前提,是只能對經授權的目標進行掃描、可能導致目標網站負載上的負擔,中斷服務或造成資料改變、在執行前,須確定已經設置好ZAP的掃描範圍(Scope)及context。

Active Scan Rules掃描規則

Scan Policy掃描策略

指在執行主動掃描時,設定哪一些掃描規則(Active Scan Rules)會被啟用,以及這些規則如何運作,例如請求的頻率、攻擊強度、警告閾值等,也可以建立多種策略,來針對不同場景,例如開發環境、QA、API掃描等,選擇最合適的策略使用。

Scope測試範圍

指目標測試的一組URL,且已被指定的Contexts定義。我們可以控制哪些網站資源應納入測試範圍,哪些應該排除,提高測試的效率及準確性。

  • 保護模式(Protected Mode):在保護模式下,為了防止對未經授權的資源進行攻擊,ZAP只被允許對Scope內的URL執行主動掃描。
  • 標準模式(Standard Mode):在標準模式下,ZAP被允許對所有URL執行主動掃描。
  • 攻擊模式(Attack Mode):在攻擊模式下,ZAP會在發現新的節點時,立即對其進行主動掃描。

Scripts

Alerts


Spider


上一篇
Day02—搭建OWASP ZAP與DVWA靶場
下一篇
Day04—ZAP 攔截 Proxy與自動化掃描實作
系列文
資安小白—30天學習滲透測試with OWASP ZAP (Zed Attack Proxy)20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言