ApacheShiro反序列化遠程代碼執行 漏洞處理


Shiro對rememberMe的cookie做了加密處理,shiro在CookieRememberMeManaer類中將cookierememberMe字段內容分別進行序列化、AES加密、Base64編碼操作。但是,AES加密的密鑰Key被硬編碼在代碼里,意味着每個人通過源代碼都能漏洞描述拿到AES加密的密鑰。因此,攻擊者構造一個惡意的對象,並且對其序列化,AES加密,base64編碼后,作為cookie的rememberMe字段發送。Shiro將rememberMe進行解密並且反序列化,最終造成反序列化漏洞。

 

有兩種修改方式。

第一種:修改shiro配置文件,修改內容為

<bean id="rememberMeCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
		<constructor-arg value="rememberMe"/>
		<property name="httpOnly" value="true"/>
		<property name="maxAge" value="31536000"/><!-- 365天 -->
	</bean>
	<!-- rememberMe管理器 -->
	<bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
		<property name="cipherKey" value="#{T(org.apache.shiro.codec.Base64).decode('qQFtSnnj/sx7vu51ixAyEQ==')}"/>
		<property name="cookie" ref="rememberMeCookie"/>
	</bean>

  

qQFtSnnj/sx7vu51ixAyEQ== 這個是生成AES密鑰
生成方式參照:https://www.cnblogs.com/pxblog/p/12485832.html

 

 

 

第二種;替換項目中shiro jar包,替換成1.2.6版本

下載地址:https://yvioo.lanzous.com/b00nueaib

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM