#Apache Shiro 反序列化漏洞(CVE-20164437)#
一、漏洞簡介
Shiro 是 Java 的一個安全框架,執行身份驗證、授權、密碼、會話管理
shiro默認使用了CookieRememberMeManager,其處理cookie的流程是:得到rememberMe的cookie值–>Base64解碼–>AES解密–>反序列化 然而AES的密鑰是硬編碼的,就導致了攻擊者可以構造惡意資料造成反序列化的RCE漏洞,
二、漏洞影響
影響版本
Apache Shiro <= 1.2.4
三、產生原因
Apache Shiro框架提供了記住我(RememberMe)的功能,關閉瀏覽器再次訪問時無需再登錄即可訪問,shiro默認使用CookieRememberMeManager,對rememberMe的cookie做了加密處理,在CookieRememberMeManaer類中將cookie中rememberMe欄位內容先后進行序列化、AES加密、Base64編碼操作,服務器端識別身份解密處理cookie的流程則是:
(1)獲取rememberMe cookie
(2)base64 解碼
(3)AES解密(加密密鑰硬編碼)
(4)反序列化(未作過濾處理)
但是AES加密的密鑰Key被硬編碼(密鑰初始就被定義好不能動態改變的)在代碼里,這就意味著每個人通過源代碼都能拿到AES加密的密鑰,因此,攻擊者可以構造一個惡意的物件,并且對其序列化、AES加密、base64編碼后,作為cookie的rememberMe欄位發送,Shiro將rememberMe進行解密并且反序列化,最終就造成了反序列化的RCE漏洞,只要rememberMe的AES加密密鑰泄露,無論shiro是什么版本都可能會導致該漏洞的產生,
四、復現程序
docker 靶機:192.168.111.137
攻擊機 win7:192.168.111.132
靶場環境:shiro 1.2.4
訪問目標Url

使用大佬的檢測工具ShiroExploit檢測是否存在shiro反序列化漏洞

存在漏洞,能夠直接進行命令執行

反彈shell成功


五、修復方案
及時更新補丁
參考oracle官網發布的補丁:
https://www.oracle.com/security-alerts/cpuoct2020traditional.html
六、參考鏈接
反序列化工具_Apache Shiro 1.2.4反序列化漏洞復現(CVE20164437)
Apache Shiro反序列化漏洞復現(Shiro550,CVE-2016-4437)
標簽
CVE-2018-2894、weblogic、任意檔案上傳、未授權訪問
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342021.html
標籤:其他
下一篇:路由重發布
