iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 4
1

A2 - Broken Authentication 無效的身份認證

Broken Authentication 所涵蓋的層面很廣,常見的像是許多使用者喜歡的弱密碼(誰不愛呀XD)或者是有些人怕忘記密碼,因此將密碼放在一些較為不安全的地方,例如:桌子下方(? 、螢幕四周(?? 或直接貼在桌上(??? 等等...
密碼一旦遭到盜用,他就可以幫你做任何的事情,不過通常具有管理員資格的帳號容易遭到駭客針對ww

弱密碼

  • 常用密碼:123456789、password、p@ssw0rd、0000、1qaz@WSX
  • Domain Name
  • 全數字、英文:11111111、abc、tiger
  • 帳號 = 密碼
  • 多服務/電腦共用密碼
  • 各種弱密碼

防護建議

  • 驗證密碼強度及密碼更換機制:)

Session 管理

這裏用簡單方式來說明:
某一天,你加入了一個貓咪俱樂部,填寫完會員資料後,得到了一張會員卡。之後只要憑這張會員卡,就可以進入這個俱樂部。但是隔天,你的會員卡掉了。撿走你會員卡的人,就可以用你的會員卡進入這個貓咪俱樂部,因為會員卡上沒有你的照片或是其他足以辨識身分的資訊。
這就像是一個會員網站,我們申請了一個帳號(填寫會員資料加入俱樂部),輸入帳號密碼登入之後,得到一組 Cookie,其中有 Session ID 來辨識你的身分(透過會員卡來辨識身分)。今天如果 Cookie 被偷走了(會員卡被撿走了),別人就可以用你的帳號來登入網站(別人用你的會員卡進入俱樂部)。

主要攻擊的攻擊手法有三種:

猜測 Session ID (Session Prediction)

如果 Session ID 的長度、複雜度、雜亂度不夠,就能夠被攻擊者猜測。攻擊者只要寫程式不斷暴力計算 Session ID,就有機會得到有效的 Session ID 而竊取使用者帳號。可以透過以下幾種工具

  1. OWASP WebScarab
  2. Stompy
  3. Burp Suite

來攔截 Session ID 並透過觀察 Session ID 的亂數分布,我可以猜測有效的 Session ID。

竊取 Session ID (Session Hijacking)

攻擊者可以利用多種方式竊取 Cookie 獲取 Session ID:

  • 跨站腳本攻擊 (Cross-Site Scripting (XSS)):利用 XSS 漏洞竊取使用者 Cookie
  • 網路竊聽:使用 ARP Spoofing 等手法竊聽網路封包獲取 Cookie
  • 透過 Referer 取得:若網站允許 Session ID 使用 URL 傳遞,便可能從 Referer 取得 Session ID

固定 Session ID (Session Fixation)

攻擊者誘使受害者使用特定的 Session ID 登入網站,而攻擊者就能取得受害者的身分。

  1. 攻擊者從網站取得有效 Session ID
  2. 使用社交工程等手法誘使受害者點選連結,使用該 Session ID 登入網站
  3. 受害者輸入帳號密碼成功登入網站
  4. 攻擊者使用該 Session ID,操作受害者的帳號

防護建議

  • 會員卡不要掉 -> 可以參考晶片植入體內
  • 設定完善的Timeout機制
  • 禁止將 Session ID 使用 URL (GET) 方式來傳遞
  • 設定加強安全性的 Cookie 屬性:HttpOnly (無法被 JavaScript 存取)
  • 設定加強安全性的 Cookie 屬性:Secure (只在 HTTPS 傳遞,若網站無 HTTPS 請勿設定)
  • 在需要權限的頁面請使用者重新輸入密碼

上一篇
『 Day 3 』Web Security - 認識 OWASP & A1 . Injection
下一篇
『 Day 5 』Web Security - A3 . 敏感資料外洩
系列文
到處挖坑,現在該來還(填)願(坑)ㄌ !!!30

尚未有邦友留言

立即登入留言