日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tomcat的SessionID引起的Session Fixation和Session Hijacking问题

發(fā)布時間:2025/3/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tomcat的SessionID引起的Session Fixation和Session Hijacking问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

上一篇說到《Spring MVC防御CSRF、XSS和SQL注入攻擊》,今天說說SessionID帶來的漏洞攻擊問題。首先,什么是Session Fixation攻擊和Session Hijacking攻擊問題? 說來話長,非常具體的解釋查看我這個pdf文件:《Session Fixation Vulnerability in Web-based Applications》。為什么會注意到這個問題?其實原來也知道session劫持的問題,但沒有注意,這幾天用IBM Ration AppScan掃描了web漏洞,發(fā)現(xiàn)一個嚴(yán)重的Session Fixation漏洞:"會話標(biāo)識未更新針對這個問題的解決方案: 始終生成新的會話,供用戶成功認(rèn)證時登錄。防止用戶操縱會話標(biāo)識。issue a new JSESSIONID cookie after login。請勿接受用戶瀏覽器登錄時所提供的會話標(biāo)識。" 原來,用戶訪問我們的登錄頁面,Tomcat就會生成一個SessionID,加密后放到用戶瀏覽器Cookie中。當(dāng)用戶登錄后,這個SessionID并沒有改變。更加糟糕的是,每次在同一臺機器上,都使用同一個SessionID。這就造成了嚴(yán)重的Session Fixation和Session Hijacking漏洞。其實,如果Tomcat啟用了SSL,Tomcat的默認(rèn)行為是:當(dāng)用戶通過登錄后,生成一個新的SessionID。如果沒有配置SSL,手動讓Tomcat生成新的SessionID的方法是:

/*
?*?Authenticate,?first?invalidate?the?previous?Tomcat?sessionID?immediately
?*?This?step?is?only?required?when?NO?SSL?of?Tomcat?is?applied!
?
*/
if?(session!=null?&&?!session.isNew())?{
????session.invalidate();
}
/*
?*?Create?the?sessionID?
?*?Actually?if?deploy?this?web?site?in?Tomcat?by?SSL,?by?default?a?new?SessionID?will?be?generated?
?*?
?*?
*/?
HttpSession?session?=?getRequest().getSession(true);

在后臺登陸邏輯中,登陸前生成新的SessionID。

另外可以采用下面的CheckList:

  • 查看sessionID生成策略,確保不可被猜測(Tomcat沒問題)
  • 查看sessionID保存策略,確保不通過URL進(jìn)行傳遞(通過URL傳遞的SessionID禁不起安全測試)
  • 每次登錄更換sessionID(已解決,事實上Tomcat在SSL下默認(rèn)也是這樣)
  • Session Cookie 設(shè)置HttpOnly(Tomcat沒問題)
  • Session Cookie 設(shè)置,特別是用戶IP, UserAgent...等更改強制session過期需要重新登錄(備用,防止Session保持攻擊)

Session Fixation攻擊

舉一個形象的例子,假設(shè)A有一輛汽車,A把汽車賣給了B,但是A沒有把鑰匙都交給B,自己還留了一把。這時候如果B沒有換鎖的話,A還是可以打開B的車的。在網(wǎng)站上,具體的攻擊過程是:攻擊者X首先獲取一個未經(jīng)認(rèn)證的SessionID,然后把這個SessionID交給用戶Y去認(rèn)證,Y完成認(rèn)證后,服務(wù)器并未更新此SessionID的值(注意是未改變SessionID,而不是Session),所以X可以直接憑借此SessionID登錄進(jìn)Y的賬戶。X怎么拿到SessionID的?常用的方法有Xss攻擊(如果設(shè)置HttpOnly此方法無效)、網(wǎng)絡(luò)Sniff、本地木馬竊取、網(wǎng)絡(luò)嗅探等。解決Session Fixation攻擊的辦法就是在登錄完成后,重新生成不可以猜測的SessionID。

ASP.NET的解決Session Fixation和Session Hijacking的問題

ASP.NET的解決Session Fixation和Session Hijacking的問題可以看這個和這個帖子。

?

總結(jié)

以上是生活随笔為你收集整理的Tomcat的SessionID引起的Session Fixation和Session Hijacking问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。