<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            Session Fixation

            ABSTRACT

            在未釋放當前會話標識符的情況下驗證用戶會給攻擊者竊取驗證會話的機會。

            EXPLANATION

            Session Fixation 漏洞會在以下情況中出現:

            1. 當 Web 應用程序驗證某一用戶時,沒有首先釋放當前會話,而是繼續使用已經與該用戶關聯的會話。

            2. 攻擊者能夠奪取已知的用戶會話標識符,因此,一旦該用戶進行驗證,攻擊者便可以訪問經過驗證的會話。

            在通常情況下,攻擊者會利用 Session Fixation 漏洞在 Web 應用程序中創建一個新會話,并且記錄與之關聯的會話標識符。然后,攻擊者會設法使受害者在服務器中的驗證失敗,從而通過當前會話來訪問用戶帳號。

            例如:下面的例子是 J2EE web 應用程序中的一個代碼片斷,該應用程序利用直接粘貼至 j_security_check 來驗證用戶,而不會在處理登錄請求之前釋放當前會話。


            <form method="POST" action="j_security_check">
            <input type="text" name="j_username">
            <input type="text" name="j_password">
            </form>


            為了利用上述代碼,攻擊者可能會首先從某個公用終端創建一個會話(可能是通過登錄應用程序),記錄由應用程序分配的會話標識符,并將瀏覽器重置為登錄頁面。然后,某個受害者使用同一個公用終端,看到瀏覽器中打開的是所需網站的登錄頁面,就輸入了憑證信息對應用程序進行驗證。這段代碼就是用于驗證的代碼,受害者會繼續使用預存的會話標識符,攻擊者現在就可以輕松地使用早先記錄下來的會話標識符,以此訪問受害者的當前會話,在會話的剩余有效期內,攻擊者幾乎可以不受任何限制地訪問受害者的帳號。

            即便是易受攻擊的應用程序,這里描述的某種特定攻擊的成功與否仍取決于諸多對攻擊者有利的因素:訪問未受監視的公用終端;能夠維持當前已遭受攻擊的會話;受害者有興趣通過公用終端登錄易受攻擊的應用程序。在多數情況下,只要肯花時間,前面兩個因素是可以實現的。只要(有公用終端的)上網地點比較受歡迎,那么尋找一個既使用公用終端又有興趣登錄這個易受攻擊的應用程序的受害者,也是可以實現的。上網地點越不受歡迎,使用這一公用終端的人就會越少,那么上述攻擊成功的可能性也就越小。

            攻擊者利用 Session Fixation 漏洞所面臨的最大挑戰是,誘導受害者用攻擊者已知的會話標識符對這個易受攻擊的應用程序進行驗證。在上述例子中,攻擊者使用比較直接的方法并不高明,對于攻擊不太出名的網站并不適用。然而,千萬不要麻痹大意,攻擊者有許多手段可以幫助他們避免上述攻擊的局限性。攻擊者所采用的最常見的技術包括:利用目標網站中的 Cross-Site Scripting 或者 HTTP Response Splitting 漏洞【1】。攻擊者誘使受害者向易受攻擊的應用程序提交惡意請求,應用程序將相應的 JavaScript 或者其他代碼返回到受害者的瀏覽器,借助于這種方式,攻擊者便可以創建一個 cookie,使受害者重新使用已受攻擊者控制的會話標識符。

            值得注意的是,cookie 常常會與某個已知 URL 所關聯的頂級域綁定到一起。如果多個應用程序位于同一頂級域(如:bank.example.com 和recipes.example.com),其中一個應用程序存在漏洞,則攻擊者可以通過此漏洞設置一個 cookie,并在其中包含一個經攻擊者修改過的會話標識符,且該會話標識符可以在與 example.com [2] 域中所有應用程序的交互中使用。

            其他攻擊手段還包括 DNS Poisoning 和其他基于網絡的攻擊形式,攻擊者通過重定向對有效站點的請求,誘使受害者訪問惡意站點。基于網絡的攻擊方式通常包括:現身于攻擊對象的網絡中或是控制網絡中的目標主機。雖然通過遠程的方式進行此種攻擊要更難一些,但也不應當忽視。安全性較差的會話管理機制(例如在 Apache Tomcat 中默認實現),可以將通常存儲在 cookie 中的會話標識符也指定給 URL,這樣,攻擊者只要通過電子郵件發送一個惡意的 URL,就可以誘使用戶使用已被修改的會話標識符。

            REFERENCES

            [1] Standards Mapping - OWASP Top 10 2004 - (OWASP 2004) A3 Broken Authentication and Session Management

            [2] Standards Mapping - OWASP Top 10 2010 - (OWASP 2010) A3 Broken Authentication and Session Management

            [3] Standards Mapping - OWASP Top 10 2007 - (OWASP 2007) A7 Broken Authentication and Session Management

            [4] Standards Mapping - Security Technical Implementation Guide Version 3 - (STIG 3) APP3090 CAT II

            [5] Standards Mapping - Security Technical Implementation Guide Version 3.4 - (STIG 3.4) APP3405 CAT I

            [6] Cross-Site Scripting and Header Manipulation Descriptions Fortify, An HP Company

            [7] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 384

            [8] Standards Mapping - FIPS200 - (FISMA) IA

            [9] Standards Mapping - Payment Card Industry Data Security Standard Version 1.1 - (PCI 1.1) Requirement 6.5.3

            [10] Standards Mapping - Payment Card Industry Data Security Standard Version 1.2 - (PCI 1.2) Requirement 6.5.7

            [11] Standards Mapping - Payment Card Industry Data Security Standard Version 2.0 - (PCI 2.0) Requirement 6.5.8

            [12] Standards Mapping - Web Application Security Consortium 24 + 2 - (WASC 24 + 2) Session Fixation

            [13] D. Whalen The Unofficial Cookie FAQ


            Copyright 2013 Fortify Software - All rights reserved.
            (Generated from version 2013.1.1.0008 of the Fortify Secure Coding Rulepacks)
            desc.semantic.java.session_fixation

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线