點(diǎn)擊上方“IT那活兒”公眾號,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。。?/strong>
背 景
本地某系統(tǒng)使用了Apache Shiro,Shiro 提供了記住我(RememberMe)的功能,下次訪問時(shí)無需再登錄即可訪問。系統(tǒng)將密鑰硬編碼在代碼里,且在官方文檔中并沒有強(qiáng)調(diào)修改該密鑰,導(dǎo)致使用者大多數(shù)都使用了默認(rèn)密鑰。
攻擊者可以構(gòu)造一個(gè)惡意的對象,并且對其序列化、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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/129152.html
摘要:關(guān)于的自動(dòng)對用戶對象序列化并加密當(dāng)獲得請求時(shí)能夠獲取反序列化且解密之后的用戶對象。 shirorememberMe流程原理研究 輸入用戶密碼正兒八經(jīng)登錄時(shí), 如果勾選了記住我, 則后臺給shiro設(shè)置rememberme showImg(https://segmentfault.com/img/remote/1460000012800157); 前一次登錄勾選了記住我, 則本次登錄時(shí)...
摘要:寫在前面在一款應(yīng)用的整個(gè)生命周期,我們都會談及該應(yīng)用的數(shù)據(jù)安全問題。用戶的合法性與數(shù)據(jù)的可見性是數(shù)據(jù)安全中非常重要的一部分。 寫在前面 在一款應(yīng)用的整個(gè)生命周期,我們都會談及該應(yīng)用的數(shù)據(jù)安全問題。用戶的合法性與數(shù)據(jù)的可見性是數(shù)據(jù)安全中非常重要的一部分。但是,一方面,不同的應(yīng)用對于數(shù)據(jù)的合法性和可見性要求的維度與粒度都有所區(qū)別;另一方面,以當(dāng)前微服務(wù)、多服務(wù)的架構(gòu)方式,如何共享Sessi...
閱讀 1459·2023-01-11 13:20
閱讀 1814·2023-01-11 13:20
閱讀 1263·2023-01-11 13:20
閱讀 2006·2023-01-11 13:20
閱讀 4226·2023-01-11 13:20
閱讀 2879·2023-01-11 13:20
閱讀 1488·2023-01-11 13:20
閱讀 3807·2023-01-11 13:20