大家好!我目前正在就讀資訊類科系,平常以接觸程式撰寫居多,對於資安領域的技術沒有太多了解因此希望藉由這30天的機會,以OWASP ZAP作為主要工具,從實際操作和分析,從環境架設、基本掃描到進階弱點發掘,一步步建立資安思維。
我將學習如何利用ZAP自動化及主動掃描常見的資安漏洞,並理解其背後的原理,例如SQL Injection、XSS等,讓我從「資安小白」進化成具備基本滲透測試技能的「資安入門者」。
瞭解ZAP的基本操作,例如Site Tree、主動\被動掃描、Scope、Alerts等概念。
為Sites tab(網站標籤)的其中一種,是一個能夠「以樹狀結構」呈現被測試過、掃描過的URL的工具,以URL的HTTP方法和參數名稱來區分,結構中的每個節點都代表著網站中的不同功能,它透過對相同功能重複掃描的避免、節點識別等功能,幫助安全測試人員更好地理解和分析網站的結構,並方便進行後續的滲透測試和漏洞挖掘。
例外狀況:
也是Sites tab(網站標籤)的其中一種,指將一組URL關聯在一起的方式,他的主要功能為:
(這部分我還是不太理解...)
指URL中,決定了應用程式邏輯結構的參數,例如官方所舉例的,在單頁應用程式(SPA)中,page參數可能用於指示當前顯示的頁面,page參數值(如 p1、p2、p3)決定了應用程式顯示的頁面。然而,如果ZAP未將page定義為結構參數,它可能將這三個URL視為同一個節點,就無法分別測試每個頁面的安全性了。
指一種結構修飾器(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視為三個獨立的節點進行掃描,重複測試相同的頁面。
指不會對測試目標發送額外請求的安全檢測,ZAP指針對使用者或自動化工具本就送出的HTTP/HTTPS請求與回應(流量)進行分析,不會修改請求,也不會有攻擊行為,且只要有流量經過ZAP Proxy就會自動進行被動掃描。但被動掃描只能「找出潛在漏洞」,無法「驗證漏洞」(主動掃描可以)。
指用對選定的目標進行攻擊,可能是對網站、系統或應用程式等,主動發送額外的測試請求,常是注入惡意的playload,模擬各種攻擊手法,如SQL注入、CSRF、XSS等,驗證潛在的安全漏洞是否存在,但使用這項方式的前提,是只能對經授權的目標進行掃描、可能導致目標網站負載上的負擔,中斷服務或造成資料改變、在執行前,須確定已經設置好ZAP的掃描範圍(Scope)及context。
指在執行主動掃描時,設定哪一些掃描規則(Active Scan Rules)會被啟用,以及這些規則如何運作,例如請求的頻率、攻擊強度、警告閾值等,也可以建立多種策略,來針對不同場景,例如開發環境、QA、API掃描等,選擇最合適的策略使用。
指目標測試的一組URL,且已被指定的Contexts定義。我們可以控制哪些網站資源應納入測試範圍,哪些應該排除,提高測試的效率及準確性。