Apache Shiro 是一個强大易用的 Java 安全框架,執行身份認證/授權/密碼管理/Session 管理。 這兩年曾經有過的漏洞

CVE-2020-17523 (Apache Shiro < 1.7.1)

特殊字元造成可以繞過身份認證取得權限的漏洞

空白字元(%20)

例如 : 127.0.0.1:8080/admin/%20 或 127.0.0.1:8080/admin/%20/

. 字元(%2E)

假如在 path matching config 時打開全路徑 setAlwaysUseFullPath(true),則 127.0.0.1:8080/admin/%2e 或 127.0.0.1:8080/admin/%2e/ 可以繞過

CVE-2016-4437 (任意版本)

可當作 RCE(Remote Code Execution)的基礎。只要 rememberMe 的 AES KEY 外洩,無論 shiro 任何版本都会有反序列化漏洞,可上傳惡意 Class(WebShell)。 所以不要使用內建的 AES Key,並刪除預設 AES Key。直接使用官方網站提供的 Key Generation

Apache Shiro Authentication Bypass Vulnerability

CVE-2020-13933 (Apache Shiro < 1.6.0)
CVE-2020-1957 (Apache Shiro < 1.5.2)
CVE-2020-11989 (Apache Shiro < 1.5.3)