1. 程式人生 > >OWASP WebGoat---安全測試學習筆記(十七)---會話管理缺陷

OWASP WebGoat---安全測試學習筆記(十七)---會話管理缺陷

會話管理缺陷(Session  Management  Flaws)

主題:

1.會話劫持

概念:

        因為HTTP是沒有狀態的,所以就有了會話管理的概念。伺服器通過會話管理,來記憶使用者的狀態。在使用者訪問WEB站點的過程中,會話管理對每個使用者

都有一個唯一的標識(SessionID),而每當新使用者訪問網站時,伺服器上也會有一個相應的標號來記錄。而且該使用者所有後續的頁面請求都會包含此標號,

這樣WEB應用程式就能識別此使用者,並記錄其狀態。伺服器端的會話標識可能是通過Cookie、URL(URL重寫)、隱藏域的方式儲存在瀏覽器中。通常情況,

會話標識(SessionID)是加密儲存在Cookie中的,隨著HTTP請求頭髮送,並在每次載入頁面時傳遞給伺服器。

        攻擊者的目的是通過竊取並使用合法使用者的會話標識(SessionID)偽裝成合法使用者,即會話劫持

方法:

        會話劫持最常用的方法就是竊取使用者會話標識。會話劫持是在合法使用者的會話ID被使用之後對其進行佔用。例如:對會話的處理不當會使得攻擊者可能猜

到相鄰的會話標識。 跨站指令碼攻擊(XSS),網路嗅探(Net Sniffer),本地木馬等。

        另一種對會話管理進行攻擊的方式叫做“會話定位(Session Fixation)”。原理是合法使用者使用了攻擊者為其準備好的會話ID進行身份認證,如此攻擊者就

可以隨意通過此會話ID劫持使用者會話。而解決Session Fixation的辦法是在登入完成後,重寫SessionID。這樣,攻擊者準備好的會話ID對於已經完成身份認證

的使用者就無效了。因為對於正常使用者來說,已經是另一個會話(SessionID不同)了。

防禦:

    對會話標識號的分配(不能讓攻擊者輕易猜到繪畫標識)

    加強對會話標識號的保護

    設定合適的會話標識有效時間

2.認證Cookie欺騙

       如果驗證cookie正確,一些應用程式會允許一個使用者自動登入到他們的網站。如果能夠獲得生成cookie的演算法,有時cookie的值是可以猜到的。

有時候cookie可能是通過跨站攻擊截獲的。

        課程目標:瞭解身份驗證cookie的方式,並指導您學習突破這種身份驗證cookie的方法。

3.會話定位(Session Fixation)

        伺服器通過每個使用者唯一的SessionID來確認其合法性。若使用者已登入,並且授權他不必重新驗證授權時,當他重新登入應用系統時,他的SessionID依然

是被認為合法的。在一些程式中,可能會在GET請求中傳遞SessionID,這就是攻擊的起點。一個攻擊者可以用一個選定的SessionID給受害人傳送一個超連結。

        例如有一個準備好的郵件,看起來像是一個從應用程式管理員發來的官方郵件。若受害者點選了這個連結,並且該受害者以攻擊者指定的ID登入了系統,

那麼攻擊者可以不經授權直接使用與受害者相同的ID訪問該頁面。


參考:

        《WEB安全測試》、《白帽子講Web安全》、《WebGoat v2.2技術文件》、《OWASP Testing Guide v3.0》

注: