Apache Shiro Padding Oracle漏洞安全通告
發布時間 2019-11-14漏洞編號和級別
CVE編號:暫無,危險級別:高危,CVSS分值:官方未評定
影響版本
受影響的版本
Apache Shiro 1.2.5, 1.2.6, 1.3.0, 1.3.1, 1.3.2, 1.4.0-RC2, 1.4.0, 1.4.1版本。
漏洞概述
Apache Shiro是美國阿帕奇(Apache)軟件基金會的一套用于執行認證、授權、加密和會話管理的Java安全框架。
Apache Shiro cookie中的通過AES-128-CBC模式加密的rememberMe字段存在問題,容易受到Padding Oracle攻擊。攻擊者通過使用RememberMe cookie作為Padding Oracle Attack的前綴,然后通過精心制作的RememberMe來執行Java反序列化攻擊。
整個過程攻擊者無需知道RememberMe的加密秘鑰。并通過以下步驟發起攻擊:
首先登錄網站,并從cookie中獲取rememberMe;
其次使用rememberMe cookie作為Padding Oracle攻擊的前綴;
然后通過Padding Oracle攻擊加密一條ysoserial工具中的Java序列化Payload來構造惡意rememberMe;
最后使用剛剛構造的惡意rememberMe重新請求網站,進行反序列化攻擊,最終導致遠程代碼執行。
漏洞驗證
該漏洞必須在登錄Apache Shiro前提下可以利用成功,進行遠程代碼執行,漏洞復現如圖所示:
登錄
登錄成功
啟動jrmp
執行exp
漏洞利用成功
修復建議
目前官方尚未發布漏洞修復補丁。
臨時修復建議:
修改shiro配置中的AES加密方法不為CBC模式。
參考鏈接
https://issues.apache.org/jira/browse/SHIRO-721