webgoat——Session Management Flaws會話管理缺陷

Session Management Flaws

會話管理:

因爲HTTP是沒有狀態的,之前認證缺陷的也會涉及到類似的知識點,由於每次請求完成後鏈接就會斷開,當客戶端再次發起請求的時候,服務端就識別不了客戶端的狀態,而會話管理就是解決這一問題的,其中一種會話管理是通過服務器端session的管理,在用戶登錄認證成功之後,服務器生成sessionid通過cookie返回給用戶所在的瀏覽器從而使每個用戶都會有一個唯一標識sessionID(詳細問度娘諾)

在這裏插入圖片描述
然後還在網上找了一個會話管理的思維導圖,今天這部分知識一丁半點:
具體文章戳 [Web安全之攻擊會話管理機制]

在這裏插入圖片描述

Hijack a Session會話劫持

開發自己的會話ID的應用程序開發人員經常忘記結合安全性所必需的複雜性和隨機性。 如果用戶特定的會話ID不復雜且隨機,則該應用程序很容易受到基於會話的暴力攻擊。

總體目標:
嘗試訪問屬於其他人的經過身份驗證的會話。

前面描述不少,但是簡單來說,竊取用戶會話標識並訪問其會話。

在這裏插入圖片描述
抓包發現cookie下有個WEAKID的參數,即是本次的會話標識,既然要訪問其他人但是又不知道用戶和密碼肯定是要根據這個會話ID來進行識別了,這裏是

WEAKID=17346-1585019744376

這裏需要做的事就是能否找到每次服務器發過來的WEAKID的規律,從而間接竊取了用戶的會話標識,將每次抓包中的WEAKID刪除再重新發包,重複幾次會發現:

WEAKID=17347-1585024090741
WEAKID=17348-1585024185916
WEAKID=17349-1585024216536

經過三次抓包放包發現WEAKID前半部分每次都會增加1,後半部分也是遞增規律,顯然是弱生成的ID,沒有進行什麼加密(一般會話標識都會加密保存到cookie中),然後我們通過 Sequencer這個模塊自動化發包,我們提交一個數據,刪掉cookie裏的WEAKID信息,發送到sequencer模塊:

在這裏插入圖片描述

進行相關配置信息後,點擊start live capture自動化放包並copy tokens

在這裏插入圖片描述
複製到以下頁面

在這裏插入圖片描述
不知道爲什麼這裏是亂序(可能沒有充錢,我這裏是社區版)但是我用肉眼發現了端倪,在73982到73984中間並沒有73983這個數字串,代表可能這個token已經登入到這個會話,因爲後半部分也是遞增的,可以選中後半部分的最後兩位進行爆破,我這裏只相差十就直接發到reapeater模塊一個一個試了

在這裏插入圖片描述

按理說應該會得到congratulations的恭喜字段,但是我這裏失敗了(不知道爲什麼也可能是我操作的問題)大致思路就是這樣,下次換個軟件再試試。

Spoof an Authentication Cookie認證cookie欺騙

如果指定了正確的身份驗證cookie,許多應用程序將自動將用戶登錄到其站點。 如果可以獲取生成cookie的算法,則有時可以猜測cookie的值。 有時,cookie會留在客戶端計算機上,並且可以通過利用另一個系統漏洞進行竊取。 有時,使用跨站點腳本可以攔截Cookie。

本課試圖使學生意識到身份驗證cookie,並在本課中向學生介紹一種克服cookie身份驗證方法的方法。

用戶應該能夠繞過身份驗證檢查。 使用webgoat / webgoat帳戶登錄以查看會發生什麼。 您也可以嘗試aspect/aspect。 當您瞭解身份驗證cookie時,請嘗試將您的身份更改爲alice登入

這裏要通過認證cookie欺騙來以Alice登錄,第一次登陸的時候並沒有cookie信息,需要登陸之後服務器傳給瀏覽器一個AuthCookie:

在這裏插入圖片描述
在這裏插入圖片描述
研究一番發現是用戶名倒過來並且字母向後移一位比如webgoat 倒過來就是taogbew,然後向後移動一位就是ubphcfx,同理這樣的話將用戶爲alice的cookie就能推導出來爲

AuthCookie=65432fdjmb

抓包登錄試一下:

在這裏插入圖片描述

在這裏插入圖片描述

登錄成功;

Session Fixation(會話固定)

服務器通過唯一的會話ID識別用戶。如果用戶已登錄並獲得授權,則在他重新訪問該應用程序時不必重新授權,因爲會話ID可以識別該用戶。在某些應用程序中,可以在Get-Request中傳遞會話ID。攻擊從這裏開始。

攻擊者可以將超鏈接發送給具有選定會話ID的受害者。例如,這可以通過準備好的郵件來完成,該郵件看起來像是來自應用程序管理員的正式郵件。如果受害者單擊該鏈接並登錄,則攻擊者已選擇會話ID授權他。攻擊者可以訪問具有相同ID的頁面,並被識別爲受害者,並未經授權即登錄。

總體目標:
本課程分爲幾個階段。您既扮演攻擊者,又扮演受害者。完成本課後,應該理解會話固定通常是如何工作的。還應該理解,對會話ID使用Get-Request是一個壞主意。

階段一

這裏我們要模擬攻擊者和受害者進行實驗
首先在需要發送的郵件網址後加入參數SID=77,並將自己的網址完善(這裏隨便都可以)

在這裏插入圖片描述
會提示第一步成功完成;
在這裏插入圖片描述

階段二、三

這裏,點擊鏈接就會進入攻擊者的陷阱(記住你現在又變成了受害者):

在這裏插入圖片描述
按照提示輸入用戶名和密碼(這裏要戲精一點你現在是受害者毫不知情)

在這裏插入圖片描述

階段四

這裏就算是攻擊者的回顯界面叭,然後點進去看看應該怎麼進去Jane的賬戶:

在這裏插入圖片描述
之後把參數值改爲你剛剛設置的值,就能成功登入:

在這裏插入圖片描述

到這裏這系列課程就結束了;

總結:

第一節是會話劫持,這裏是暴力猜解cookie(會話ID)的方式,令牌可預測。
第二節欺騙認證cookie,觀察到cookie是如何對用戶進行驗證的,構造cookie進行登錄。
第三節誘騙受害者使用攻擊者“定製”的session進行登錄(會話ID固定)。

防禦:

1.加強對會話標識的複雜度(不能讓攻擊者輕易猜解會話標識)並且進行加密
2.設置合適的會話標識有效時間
3.將生成cookie算法複雜化
4.禁止對會話ID使用Get-Request(防範會話固定)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章