EventListenerList触发任意toString 这是一条JDK原生toString链 readObject->toString 依赖:我这里用的是jdk8u66,链子的限制版本我还不是很清楚,希望各位师傅不吝赐教。 javax.swing.event.EventListenerList#readObject: 可以看到这里我们需要找到能够强制转换为 EventListener 类型,并且实现 Serializable 接口的类。 这里找 2025-03-24 JAVA #JAVA
Aspectjweaver反序列化 AspectJWeaver 是 AspectJ 框架的一部分,是一个用于实现面向切面编程(POA)的工具。AspectJWeaver 提供了在 Java 程序中使用 AspectJ 的功能,并通过字节码操纵技术来织入切面代码到应用程序的目标类中。 这篇文章不聊怎么任意利用文件写入进而来RCE,只学习一下如何利用AspectJWeaver通过反序列化来进行任意文件写入。 依赖123456789101 2025-03-24 JAVA #JAVA
SnakeYaml反序列化 YAML是一种可读性高,用来表达数据序列化的格式。YAML是”YAML Ain’t a Markup Language”(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML的意思其实是:”Yet Another Markup Language”(仍是一种标记语言),但为了强调这种语言以数据为中心,而不是以标记语言为重点,而用反向缩略语重命名。 YAML基本格式要求: YAML大小 2025-03-19 JAVA #JAVA
C3P0反序列化 C3P0是JDBC的一个连接池组件 JDBC: JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。 使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接口来访问,而JDBC接口则通过JDBC驱动来实现真正对数据库的访问。 连接池: 我们在讲多线程的时候说过,创建线程是一个昂贵的操作,如果有 2025-03-13 JAVA #JAVA
JDK7u21原生反序列化 Java的反序列化漏洞有一些时基于第三方jar包的,所以我们不难免会设想是否存在不依赖第三方的Gadget。比如这条JDK7u21的链子,不需要任何其他的jar包。 依赖jdk版本低于7u21 我这里用7u21 利用链分析7u21利用链的核心是AnnotationInvocationhandler#equalslmpl 这个方法中有个很明显的反射调用memberMethod.invoke(o) 2025-03-06 JAVA #JAVA
Jackson反序列化 依赖jdk7u21 123456789101112131415161718192021222324252627282930<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> 2025-03-05 JAVA #JAVA
Jackson原生反序列化 前面说到了在fastjson中的原生的一个反序列化调用任意类的getter方法的原理与细节,既然在fastjson中存在有这样的原生反序列化,在另一个和他功能类似的开源库jackson也有着类似的原生反序列化触发getter方法。 依赖1234567891011121314151617181920<dependency> <groupId>org.javassist& 2025-03-05 JAVA #JAVA
Hessian反序列化 Hessian是一个基于RPC的高性能二进制远程传输协议,官方对Java、Flash/Flex、Python、C++、.NET C#等多种语言都进行了实现,并且Hessian一般通过Web Service提供服务。在Java中,Hessian的使用方法非常简单,它使用Java语言接口定义了远程对象,并通过序列化和反序列化将对象转为Hessian二进制格式进行传输。 环境配置:jdk 8u 2025-03-03 JAVA #JAVA
Resin反序列化 Resin是一个轻量级的、高性能的开源Java应用服务器。它是由Caucho Technology开发的,旨在提供可靠的Web应用程序和服务的运行环境。和Tomcat一样是个服务器,它和hessian在一个group里,所以有一定的联系。 QName利用链依赖jdk 8u66 1234567<dependencies> <dependency> <groupI 2025-03-02 JAVA #JAVA
java反序列化ROME原生链 环境配置:jdk 8u66 123456789101112<dependencies> <dependency> <groupId>rome</groupId> <artifactId>rome</artifactId> <version>1.0</versio 2025-03-01 JAVA #JAVA