3. Session Management Flaws

Outline

  1. Hijack a Session
  2. Spoof an Authentication Cookie
  3. Session Fixation

Hijack a Session

     Hijack a Session是指竊取Session ID,算是很常見的攻擊手法之一,簡單可以再細分為

  1. 用XSS漏洞取得User Cookie
  2. 利用ARP spoofing取得封包
  3. 若Session傳遞是以GET的方式(藉由URL),便可能從Referer取得
  4. 若Session的加密方式不夠強大,也可能用猜的來取的Session ID

這是題目

2016/1/5 picture1

 

這題的要求的要使用別人可以登入的Session ID來登入,而題目也說user specific session ID 並非完全的隨機生成,因此可以藉由推算的方式取得別人的session ID (WEAKID cookie)

首先用WebScarab 的 SessionID Analysis功能來做出50個Sample

 

找到沒有連續的部分,因為那個Value已經存在所以Sample會跳過,也就是說那個Session ID就是我們要找的ID

把前後兩個Value放入Simple hijack裡面跑, 就可以得到真正的SessionID

最後再將Session ID傳回給Server 就過關了

 

Spoof a Authentication Cookie

    簡單來講這題要製造假的可通行的cookie來欺騙server達到登入的效果,所以必須要分析已知的cookie

這是題目


 由題目可以知道有兩個帳號已知,一個是webgoat/webgoat,另一個是aspect/aspect,而題目要求以alice登入

分別登入webgoat跟aspect會在cookie manager發現AuthCookie分別為65432ubphcfx和65432udfqtb

比較之後會發現後面的英文字是帳號向後移一碼之後逆著寫回來,因此推出alice的AuthCookie為65432fdjmb654

將cookie manger的值修改之後就可以成功登入了

 

 Session Fixation

    Session Fixation是指攻擊者以指定的方式將Session固定來,使使用者必須使用其Session,那麼即使Session沒有被動過手腳,攻擊者仍會知道Session為何,通常出現在GET傳輸時,因為Session是攻擊者給予的而非Server給的

 這是題目

首先修改信件裡的HTML code部分來固定Session

接著Jane收到信之後進行登入之後

然後你就可以藉由修改URL裡的Session來登入他的帳號

 

成功登入

 

心得:

 

 

 

參考資料:

http://devco.re/blog/2014/06/03/http-session-protection/