點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!
背 景
本地某系統(tǒng)使用了Apache Shiro,Shiro 提供了記住我(RememberMe)的功能,下次訪(fǎng)問(wèn)時(shí)無(wú)需再登錄即可訪(fǎng)問(wèn)。系統(tǒng)將密鑰硬編碼在代碼里,且在官方文檔中并沒(méi)有強(qiáng)調(diào)修改該密鑰,導(dǎo)致使用者大多數(shù)都使用了默認(rèn)密鑰。
攻擊者可以構(gòu)造一個(gè)惡意的對(duì)象,并且對(duì)其序列化、AES加密、base64編碼后,作為cookie的rememberMe字段發(fā)送。Shiro將rememberMe進(jìn)行解密并且反序列化,最終造成反序列化漏洞,進(jìn)而在目標(biāo)機(jī)器上執(zhí)行任意命令。
漏洞修復(fù)
KeyGenerator keygen = KeyGenerator.getInstance("AES");
SecretKey deskey = keygen.generateKey();
System.out.println(Base64.encodeToString(deskey.getEncoded()));
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129152.html
摘要:關(guān)于的自動(dòng)對(duì)用戶(hù)對(duì)象序列化并加密當(dāng)獲得請(qǐng)求時(shí)能夠獲取反序列化且解密之后的用戶(hù)對(duì)象。 shirorememberMe流程原理研究 輸入用戶(hù)密碼正兒八經(jīng)登錄時(shí), 如果勾選了記住我, 則后臺(tái)給shiro設(shè)置rememberme showImg(https://segmentfault.com/img/remote/1460000012800157); 前一次登錄勾選了記住我, 則本次登錄時(shí)...
摘要:寫(xiě)在前面在一款應(yīng)用的整個(gè)生命周期,我們都會(huì)談及該應(yīng)用的數(shù)據(jù)安全問(wèn)題。用戶(hù)的合法性與數(shù)據(jù)的可見(jiàn)性是數(shù)據(jù)安全中非常重要的一部分。 寫(xiě)在前面 在一款應(yīng)用的整個(gè)生命周期,我們都會(huì)談及該應(yīng)用的數(shù)據(jù)安全問(wèn)題。用戶(hù)的合法性與數(shù)據(jù)的可見(jiàn)性是數(shù)據(jù)安全中非常重要的一部分。但是,一方面,不同的應(yīng)用對(duì)于數(shù)據(jù)的合法性和可見(jiàn)性要求的維度與粒度都有所區(qū)別;另一方面,以當(dāng)前微服務(wù)、多服務(wù)的架構(gòu)方式,如何共享Sessi...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20