原理 首先先回顾一下之前CC1-CC7这七条链,我也忘得差不多了,总体分为两种方式实现代码执行吧: 第一种是CC1和CC6,核心是通过ChainTransformer.tranform方法链式调用构造好的ConstantTransformer.tranform和InvokerTransformer.transform方法,实现代码执行第二类是以CC…
JEP290介绍 JDK Enhancement Proposal 简称JEP,是 JDK 增强提议的一个项目,目前索引编号已经达到了JEP415。 JEP290的描述是Filter Incoming Serialization Data,即过滤传入的序列化数据。JEP290 是 Java 为了防御反序列化攻击而设置的一种过滤器,其在 JEP 项目…
漏洞条件 Apache Tomcat 9.0.0.M1 to 9.0.17Apache Tomcat 8.5.0 to 8.5.39Apache Tomcat 7.0.0 to 7.0.93Windows系统开启CGIServletCGI目录下存在bat文件 漏洞原理 本人认为该漏洞的核心在于JDK中runtime.getRuntime.exec(…
[Code-Breaking Puzzles]javacon 题目下载地址:https://www.leavesongs.com/media/attachment/2018/11/23/challenge-0.0.1-SNAPSHOT.jar 题目分析 登录框 随意输入,会提示“登陆失败,用户名或者密码错误!”。 然后就进行代码审计,程序结构如…
Spring Security RegexRequestMatcher 认证绕过 (CVE-2022-22978) SpringSecurity是Spring的一个访问控制框架,跟Shiro类似,基本功能是“认证”(Authentication)与 “授权” (Authorization)。 这个洞是身份认证的绕过,感觉有点像PHP在正则匹配的时候…
高低JDK版本中JNDI注入 这篇文章主要是分析在高低版本JDK中JNDI注入RMI和LDAP两个攻击向量的调用过程以及异同点,并且尝试调试高版本JDK的绕过方法。 分析高低版JDK下的JNDI注入 RMI 低版本 这里用RMI+Reference做演示,JDK版本为8u65: 服务端 import com.sun.jndi.rmi.regis…
RMI原理与使用 何为RMI RMI(Remote Method Invocation)即远程方法调用,是分布式编程中的一个基本思想。实现远程方法调用的技术有很多,比如CORBA、WebService,这两种都是独立于各个编程语言的。 而Java RMI是专为Java环境设计的远程方法调用机制,是一种用于实现远程调用(RPC,Remote Proc…
Spring 反序列化JNDI注入漏洞 环境搭建 直接用的Github的项目:https://github.com/zerothoughts/spring-jndi 下载到本地,导入maven项目即可。 同时,为了顺利复现漏洞,JDK要在以下的版本之下:8u121、7u131、6u141。在上述版本之后的JDK中,都增加了com.sun.jndi.…
这篇文章受密码保护,输入密码才能阅读
Shiro550反序列化漏洞分析 介绍 Apache Shiro 是一个开源安全框架,提供身份验证、授权、密码学和会话管理。 Apache Shiro框架提供了记住我的功能(RememberMe),用户登陆成功后会生成经过加密并编码的cookie,在服务端接收cookie值后,Base64解码-->AES解密-->反序列化。攻击者只要找…