CWE-384: Session Fixation 會話固定漏洞有哪些修補方法?
本期主題為會話固定(CWE-384: Session Fixation)漏洞的相關介紹。
一、什麼是會話固定?
對使用者進行身份鑑別並建立一個新的會話時沒有讓原來的會話失敗。
二、會話固定漏洞的構成條件有哪些?
當使用者成功驗證而應用程式不更新cookie時,這個時候就存在會話固定漏洞。
HTTP的無狀態性,導致Web應用程式必須使用會話機制來識別使用者。如果使用者未登入時的會話ID和登入後的會話ID保持一致,那麼攻擊者可以迫使受害者使用一個已知(有效)的會話ID,當受害者透過身份驗證,攻擊者就可以利用這個會話ID進入驗證後的會話(登入狀態)。
三、會話固定漏洞會造成哪些後果?
攻擊者可誘使使用者在攻擊者建立的會話基礎上進行身份鑑別,從而竊取使用者透過身份鑑別的會話並冒充使用者進行惡意操作。
四、會話固定漏洞的防範和修補方法有哪些?
對使用者進行身份鑑別並建立一個新的會話時讓原來的會話失效。核心程式碼如下。
// 會話失效
session.invalidate();
// 會話重建
session=request.getSession(true);
五、會話固定漏洞樣例:
protected WebSession updateSession_DELETEME(HttpServletRequest request,HttpServletResponse response, ServletContext context)
{
HttpSession hs;
hs = request.getSession(true);
//System.out.println( "Entering Session_id: " + hs.getId() );
// dumpSession( hs );
// Make a temporary session to avoid the concurreny issue
// in WebSession
WebSession session = new WebSession(this, context);
WebSession realSession = null;
Object o = hs.getAttribute(WebSession.SESSION);
if ((o != null) && o instanceof WebSession)
{
realSession = (WebSession) o;
}
session.setCurrentScreen(realSession.getCurrentScreen());
session.setCourse(realSession.getCourse());
session.setRequest(request);
// to authenticate
//System.out.println( "Leaving Session_id: " + hs.getId() );
//dumpSession( hs ); return (session);
}
……
使用Wukong靜態程式碼安全檢測上述程式程式碼,則可以發現程式碼中存在著“會話固定”的安全漏洞。請見下圖:
“會話固定”在CWE中被編號為:CWE-384:Session Fixation
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2785659/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Session會話Session會話
- 網站漏洞修復 上傳webshell漏洞修補網站Webshell
- 檢視當前會話session id方法:會話Session
- Oracle 會話(Session)Oracle會話Session
- oracle 會話(session)被鎖瞭解決方法Oracle會話Session
- Cassandra的Session會話Session會話
- 會話技術之 Session會話Session
- Session會話管理(PHP,Apacha)Session會話PHP
- oracle session(會話) 跟蹤OracleSession會話
- 【會話】Oracle kill session系列會話OracleSession
- 會話等待(Session Waits)會話SessionAI
- 【會話】V$SESSION檢視會話Session
- 會話層技術-session會話Session
- 10、flask-會話-sessionFlask會話Session
- Oracle 檢視當前會話 SESSION ID 方法 說明Oracle會話Session
- 磁頭損壞的修復方法有哪些
- 網站存在漏洞怎麼修復 如何修補網站程式程式碼漏洞網站
- 我的會話(session)在做什麼?會話Session
- 我的會話session在做什麼?會話Session
- 會話統計資訊session_pkg會話Session
- 怎麼修復網站漏洞之metinfo遠端SQL隱碼攻擊漏洞修補網站SQL
- 根據v$session 之status及logon_time有選擇kill某些session會話SessionGo會話
- iptables一句話修復安全漏洞
- 令牌Token和會話Session原理與攻略會話Session
- ZooKeeper如何模擬會話失效(Session Expired)會話Session
- MQTT 持久會話與 Clean Session 詳解MQQT會話Session
- Session會話與Cookie簡單說明Session會話Cookie
- session會話的底層實現方式Session會話
- 我的會話(session)在做什麼? (轉)會話Session
- 沒有修復不了漏洞,只有修不成的工具人!
- thinkcmf 網站最新漏洞修復方法網站
- 程式碼注入漏洞以及修復方法
- 批量kill殺死某些會話session的plsql會話SessionSQL
- 網站漏洞修補之ECshop4.0跨站指令碼攻擊修復網站指令碼
- 微軟11月補丁日,修復12個關鍵漏洞微軟
- 谷歌披露 微軟 Jet 資料庫引擎 RCE 漏洞,尚未修補谷歌微軟資料庫
- Ubuntu釋出PHP重要補丁修復多個PHP漏洞UbuntuPHP
- 修復Windows漏洞 微軟預釋出11個補丁(轉)Windows微軟