Apache Shiro < 1.2.4漏洞概叙Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。shiro默认使用了CookieRememberMeManager,shiro处理cookie流程是:...
Shiro550用的其实就是CB链,这里只是有一些细节需要注意,Shiro的触发点是Cookie处解码时会进行反序列化,他生成的反序列化字符串是进行AES对称加密的,因此要在对数据进行一次AES加密,反序列化漏洞的利用就建立在知晓key的情况下,而shiro最初时,key是直接硬编码写在源码里的,全局搜serialize ...
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。 我们都知道Shiro反序列化的漏洞有两个,550和721,这两个不是版本,是apache官方issue的编号。 issues.apache.org/ji...
Apache Shiro[1]是一款开源安全框架,提供身份验证、授权、密码学和会话管理。在1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。 ailx10 1893 次咨询 4.9 网络安全优秀回答者 网络安全硕...
接下来需要做的事情是将不同Weblogic版本的Coherence利用链整合进ysoserial工具包中,这样可以直接调用ysoserial工具来生成shiro反序列化的poc。这里就遇到了一个非常大的麻烦,Weblogic有不同版本如12.2.130、12.2.140、14.1.100等等,每个细微版本的Coherence库的SUID都不一样,在反序列化漏洞利用过程中,SUID对不上,是没法...
Shiro作为Java的一个安全框架,其中提供了登录时的RememberMe功能,让用户在浏览器关闭重新打开后依然能恢复之前的会话。而实现原理就是将储存用户身份的对象序列化并通过AES加密、base64编码储存在cookie中,只要能伪造cookie就能让服务器反序列化任意对象,而1.2.4版本及以下AES加密时采用的key是硬编码在代码中的,这就为...
1:生成cookie:序列化 => 使用密钥进行AES加密 => Base64编码,最后返回客户端 remebreme Cookie; 2: 识别cookie:得到rememberMe的cookie值=>Base64解码=>使用密钥进行AES解密=>反序列化。 这个通过观察shiro1.2.4版本的源代码可以发现,如果不指定密钥,shiro会默认一个初始化密钥,该密钥是被硬编码在代码中,由于代...
Apache Shiro <= 1.2.4 PS: 实际上漏洞与shiro版本无关, 无论是否升级shiro到1.2.5及以上, 如果shiro的rememberMe功能的AES密钥被泄露, 就会导致反序列化漏洞. 本人已在实际工作中遇到这样的特例, 密钥泄漏的根本原因是开发人员在开发过程中部分代码直接使用了网上的一些开源的项目代码. ...
shiro反序列化 shiro550 环境搭建 https://codeload.github.com/apache/shiro/zip/shiro-root-1.2.4 配置pom.xml <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <scope>runtime</scope> </dependency>
1、Shiro rememberMe反序列化漏洞(Shiro-550) 1.1 漏洞原理 Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。