iT邦幫忙

2025 iThome 鐵人賽

DAY 8
0
Security

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

Day08—ZAP 攻擊面探索與Session管理

  • 分享至 

  • xImage
  •  

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


今日內容概要:

  1. 什麼是網站的「攻擊面 (Attack Surface)」及「Session管理」?
  2. 用ZAP的Site Tree分析網站攻擊面
  3. 使用Forced Browse/Forced Scan測試隱藏頁面與目錄
  4. 測試Session(是否過期)與Cookie(是否能繞過登入機制)

什麼是網站的「攻擊面(Attack Surface)」及「Session管理」?

攻擊面(Attack Surface)

指一個網站或系統中,所有可能被攻擊的「入口點」,例如登入頁面、註冊表單、上傳檔案、資料管理頁面等。

Session管理

前面在介紹常見的攻擊手法時,有提及過類似的概念,大部分網站在使用者登入後,會用Session ID、Cookie、Token來識別使用者,但假如這些值可被預測、未進行加密或是未設定任何安全防護機制,可能遭受固定會話攻擊Session Fixation、會話劫持Session Hijacking、權限繞過等攻擊。

  • Session Fixation(固定Session ID):
    流程如下:
  1. 攻擊者必須先取得或設定一個Session ID: 設定方式取決於該網站是允許Session ID藉由URL傳遞還是Cookie設定,前者的話,攻擊者可以預先設定一個固定的Session ID,讓受害者使用這個ID登入;後者的話,表示該網站允許外部設定Cookie,使攻擊者可以利用網頁漏洞強指受害者使用攻擊者指定的Session ID。
  2. 攻擊者引誘受害者使用該Session ID: 釣魚郵件/訊息(發送含惡意Session ID連結的電子郵件或簡訊)、社交工程(在社群媒體、論壇張貼連結,吸引受害者點擊)、跨站請求偽造CSRF(由於受害者正在使用已完成身分驗證的網站,瀏覽其他網站時,可能使瀏覽器自動發送Cookie,攻擊者可能透過CSRF攻擊來強制使用者使用攻擊者設定的Session ID)。
  3. 如果該網站未對此類型攻擊設置防範措施的話 ,當受害者成功登入後,伺服器不會產生新的Session ID,攻擊者設定的Session ID將繼續沿用,並且成為受害者的身分辨識別碼(合法的身分憑證),使攻擊者可以使用相同的Session ID登入,冒充受害者,執行對受害者不利的行為。
  • Session Hijacking(竊取Session ID): 指攻擊者在受害者完成在網路上的登入(身分驗證),利用Sniffing竊聽、XSS跨站腳本攻擊、Session Fixation(固定Session ID)、中間人攻擊等方式,取得伺服器產生的Session ID後,從中取得受害者重要個人資訊的攻擊手法,而攻擊者通常以瀏覽器或網路應用程式為主要目標。

  • Session Prediction(猜測Session ID):

  • 權限繞過: 指攻擊者直接修改Cookie,冒充管理員身分的行為。

用ZAP的Site Tree分析網站攻擊面

抓取到的靜態內容(例如css、javascripts、png):
https://ithelp.ithome.com.tw/upload/images/20250830/20169022GqH89uXCWv.pnghttps://ithelp.ithome.com.tw/upload/images/20250830/20169022Ee52jGV1Ny.png
抓取到的動態內容(例如php):
https://ithelp.ithome.com.tw/upload/images/20250830/201690227mX7RFFk49.png

使用Forced Browse/Forced Scan測試隱藏頁面與目錄

測試Session(是否過期)與Cookie(是否能繞過登入機制)

  • 對/login.php之Cookie參數修改—刪除PHPSESSID參數(測試Session Fixation及Session Hijacking)
    https://ithelp.ithome.com.tw/upload/images/20250901/20169022A4VJc8T7xY.png
    (圖片為修改參數後的結果,回應狀態碼顯示為302 Found,表示可能成功繞過登入機制)

參考文章:

https://realnewbie.com/basic-concent/architecture/what-is-session-fixation-attack/
https://www.kaspersky.com.tw/resource-center/definitions/what-is-session-hijacking


上一篇
Day07—ZAP Ajax Spider與Spider的比較實作
下一篇
Day09—表單驗證與弱密碼測試
系列文
資安小白—30天學習滲透測試with OWASP ZAP (Zed Attack Proxy)20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言