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