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