###### tags: `資訊安全`,`2022` {%hackmd BJrTq20hE %} # Session 攻擊 Session Id 是伺服器識別合法使用者的ID。不管有沒有登入網站,只要瀏覽頁面,就會獲得由 Server 發放的一組**不可被預測的隨機字串**並**具有時效性**的識別號,並儲存在 Cookie。 有些網站在操作敏感性資料時,要是閒置太久,會關閉 Session、要求使用者重新登入,防止資料外洩。 ## Session Prediction Session Id 複雜度不夠,太容易被駭客猜測,EX:利用使用者id、生日、時間等來組合生成 Session Id。 駭客就可以利用猜測出來的 Session Id 進行攻擊。 ### 防禦方式 使用 Web Framework 中內建的 Session Id,避免自己實作產生安全性漏洞。 ## Session Fixation Session Id 設計成固定組數發放,駭客可以先註冊網站取得一組 Session Id, 再欺騙使用者利用這一組Id到網站裡去。利用同一組 Session Id,但實際上卻是兩個不同的人(駭客跟受害的使用者).來達到攻擊的效果。 ### 防禦方式 * Session ID 每次登入應該換新 * 不要用 Get 傳遞 敏感參數 * 頁面不要有 XSS 漏洞,避免 Session ID 被竊取 * Cookie 應設 secure,確保傳輸安全 ## Session Hijacking 使用者在公共場所或是不安全的網路環境下,被駭客竊取封包,得知 Session Id。 之後再利用此 Session Id 登入使用者帳號,進行攻擊。 ### 防禦方式 * 使用 Https 連線 * Cookie 設為 secure 確保使用 Https 連線 ##### Reference Hahow 經典駭客攻擊教程 [Cookie 設置 ](https://hackmd.io/uxk_4eTJRsOAHBk75oOt3w)