iT邦幫忙

2023 iThome 鐵人賽

DAY 18
0
自我挑戰組

馬克的 Kali Linux 與資安學習小筆記系列 第 18

30-18 OWASP - Session Management Testing ( 1 )

  • 分享至 

  • xImage
  •  

https://owasp.org/www-project-web-security-testing-guide/stable/4-Web_Application_Security_Testing/06-Session_Management_Testing/README

4.6.1 Testing for Session Management Schema

Testing for Session Management Schema

web application 有一個機制,就是會將 client 與 server 之間溝通的狀態儲放起來,為了不要每一次請求時都需要登入一次,這個機制就叫作 session management

其中cookie 就是最常被用來使用的工具,它是被定義在RFC 2965 中,然後這一章節主要就是要測試它,主要的重點在於 :

  • 所有的 set-cookie 是否有設 secure ?

  • 有任何 cookie 是透過非 https 傳輸或是被強制用 http 傳輸 ?

  • cookies 的 expires time 合適嗎 ?

  • 有使用 cache-control 來保護 cookie 嗎 ?

4.6.2 Testing for Cookies Attributes

Testing for Cookies Attributes

這章節主要是談關安全的 cookie attributes 設置,重點如下 :

  • secure attribute : 這個地方設置代表要求 cookie 一定要通過 https。

  • HttpOnly Attribute : 有設置的話,它會義制只能由 http 協來存取,也就是說就無法使用 xss 攻擊,用 script 來抓取 cookie。

  • Domain Attribute : 它表明了那些 hosts 可能接受 cookie,它會包含 sub domain。

  • Path Attribute : 上面的 domain 如果設定完,接下就會用 path 來設定這個 cookie 可以用的 path。

  • Expires Attribute : 這個 cookie 的到期時間。

  • SameSite Attribute : 主要是為了防止 csrf 攻擊,它有三種值 :

    • strict : 最嚴格,只有當前的 url 與請求一致,才會帶上 cookie。

    • lax : 稍微放寬,上面的規則,然後 get 請求除外。

    • none : 就是不設置。

4.6.3 Testing for Session Fixation

Testing for Session Fixation

session fixation 是一種攻擊手法,主要的流程如下 :

  1. 攻擊者在網路上取得到有效的 session id。

  2. 使用社交工程,讓使用者的瀏覽器 cookie 吃這個 session id。

  3. 然後當用戶登入時,就會用這個 session id 進去,然後擊者就可以用這個 session id 看使用者的所有操作。

預防的方法為 :

  • 身份驗證完,會刷新 session cookie 。

4.6.4 Testing for Exposed Session Variables

Testing for Exposed Session Variables

這裡主要是在討論 session 在傳輸時,免受竊聽的重要性,主要的重點在於 :

  • https。

  • cache-control。

4.6.5 Testing for Cross Site Request Forgery

Testing for Cross Site Request Forgery

csrf 全名叫 Cross Site Request Forgery 跨站請求偽造,上面有提到為了讓我們不用每一次連到畫面時,都需要登入一次,因此有了 session management 機制,會在 client 端儲 cookie,然後 csrf 的手法就是 :

  • 用戶在 a 網站登入後,a 網站設了一個 cookie 儲在用瀏覽器上,到期為 24 小時。

  • 然後在這 24 小時內,用戶又去其它網站走,然後就走到攻擊者設的惡意網頁,然後它會透過這個網站去打 a 網站的 api,來假裝是你。

防止的手法 :

  • CSRF Token : server 產一個有時效性的 token,在前端需要打我們重要的 api 前,先來取得,然後再帶到 header 中再打那個重要的 api。

  • SameSite Attribute 設置,限制第三方網站對 cookie 的訪問。

  • Referrer 設置,服端務檢查 http referer 標頭,確保請求豆法的來源,但有可能被修改。

  • Access-Control-Allow-Origin 的設置,瀏覽器會先發 preflight 給 server 檢查 domain 是否被允許。


上一篇
30-17 OWASP - Authorization Testing
下一篇
30-19 OWASP - Session Management Testing ( 2 )
系列文
馬克的 Kali Linux 與資安學習小筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言