Infernity's blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • friends
PolarCTF_Web方向JAVA题目全题解

PolarCTF_Web方向JAVA题目全题解

ezjava【2023秋季个人挑战赛】 一眼SPEL表达式注入。 1/SPEL/vul?ex=T(java.lang.Runtime).getRuntime().exec("whoami") 这道题无回显,直接外带flag即可。 CB链 【2023冬季个人挑战赛】 user路由把得到的user参数进行了base64解密,然后反序列化。 他有CC和CB的依赖,直接打CB链就行
2025-04-07
WPs
#WPs
EventListenerList触发任意toString

EventListenerList触发任意toString

这是一条JDK原生toString链 readObject->toString 依赖:我这里用的是jdk8u66,链子的限制版本我还不是很清楚,希望各位师傅不吝赐教。 javax.swing.event.EventListenerList#readObject: 可以看到这里我们需要找到能够强制转换为 EventListener 类型,并且实现 Serializable 接口的类。 这里找
2025-03-24
JAVA
#JAVA
Aspectjweaver反序列化

Aspectjweaver反序列化

AspectJWeaver 是 AspectJ 框架的一部分,是一个用于实现面向切面编程(POA)的工具。AspectJWeaver 提供了在 Java 程序中使用 AspectJ 的功能,并通过字节码操纵技术来织入切面代码到应用程序的目标类中。 这篇文章不聊怎么任意利用文件写入进而来RCE,只学习一下如何利用AspectJWeaver通过反序列化来进行任意文件写入。 依赖123456789101
2025-03-24
JAVA
#JAVA
SnakeYaml反序列化

SnakeYaml反序列化

YAML是一种可读性高,用来表达数据序列化的格式。YAML是”YAML Ain’t a Markup Language”(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML的意思其实是:”Yet Another Markup Language”(仍是一种标记语言),但为了强调这种语言以数据为中心,而不是以标记语言为重点,而用反向缩略语重命名。 YAML基本格式要求: YAML大小
2025-03-19
JAVA
#JAVA
C3P0反序列化

C3P0反序列化

C3P0是JDBC的一个连接池组件 JDBC: JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。 使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接口来访问,而JDBC接口则通过JDBC驱动来实现真正对数据库的访问。 连接池: 我们在讲多线程的时候说过,创建线程是一个昂贵的操作,如果有
2025-03-13
JAVA
#JAVA
JDK7u21原生反序列化

JDK7u21原生反序列化

Java的反序列化漏洞有一些时基于第三方jar包的,所以我们不难免会设想是否存在不依赖第三方的Gadget。比如这条JDK7u21的链子,不需要任何其他的jar包。 依赖jdk版本低于7u21 我这里用7u21 利用链分析7u21利用链的核心是AnnotationInvocationhandler#equalslmpl 这个方法中有个很明显的反射调用memberMethod.invoke(o)
2025-03-06
JAVA
#JAVA
Jackson反序列化

Jackson反序列化

依赖jdk7u21 123456789101112131415161718192021222324252627282930<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId>
2025-03-05
JAVA
#JAVA
Jackson原生反序列化

Jackson原生反序列化

前面说到了在fastjson中的原生的一个反序列化调用任意类的getter方法的原理与细节,既然在fastjson中存在有这样的原生反序列化,在另一个和他功能类似的开源库jackson也有着类似的原生反序列化触发getter方法。 依赖1234567891011121314151617181920<dependency> <groupId>org.javassist&
2025-03-05
JAVA
#JAVA
Hessian反序列化

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反序列化

Resin是一个轻量级的、高性能的开源Java应用服务器。它是由Caucho Technology开发的,旨在提供可靠的Web应用程序和服务的运行环境。和Tomcat一样是个服务器,它和hessian在一个group里,所以有一定的联系。 QName利用链依赖jdk 8u66 1234567<dependencies> <dependency> <groupI
2025-03-02
JAVA
#JAVA
123…6

搜索

Hexo Fluid
总访问量 次 总访客数 人