漏洞编号和级别
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
漏洞利用成功