EddieMurphy's Blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

ruoyi-v4.7.8-RCE分析

前言应朋友的邀约看了看CNSS的夏令营题,基本是去年招新的原题,很简单。出了一道ruoyi不是原题,版本是4.7.7,这里也是直接拿下一血,借此做一个分析。 其实Ruoyi在4.7.6以前都是可以直接在定时任务打snakeyaml写内存马或者jndi,但是4.7.7后把bean能调用的一些class给ban了,而且4.7.8可以看到限制了http(s)/ldap/rmi的执
2024-08-08
#Java

从CISCN2023-华北-normal_snake看Snakeyaml和C3P0缝合

前言看标题就知道这次我要写什么,就是缝合怪。 除了Hessian这种独特的反序列化机制,以及AliyunChain17这种,很多java反序列化题目都是缝合。再加上搞心态的黑名单,缝合属性大爆发了属于是。 话不多说直接看题。 题目分析这道题我在博客园发过一次分析,这里也就浅浅贴个链接CV几下偷个懒~~ [CISCN 2023 华北]-normal_snake - Eddie_Murphy - 博客
2024-08-05
#Java

C3P0

前言C3P0是JDBC的一个连接池组件,类似的连接池组件还有Druid、DBCP 在执行JDBC的CRUD操作时,若每次操作都建立一次新的数据库连接到销毁,开销就太大了。因此通过连接池(Connection Pool)复用创建好的连接。 C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。 使用它的开源项目有Hibernate、Spring
2024-08-05
#Java

二次反序列化

前言很多java题目,大都弄了个类继承ObjectInputStream,重写其resolveClass方法,在里面添加对反序列化类黑名单的校验。这也为我AWDP修java题提供了一些思路。 比如: 123456789101112131415161718192021222324252627public class MyObjectInputStream extends ObjectInputStr
2024-08-04
#Java

从巅峰极客2023Baby_URL看二次反序列化和Jackson原生链

这次本来是想学习Jackson原生链才开始做这道题打复现,但是没想到的是这道题的两个做法让我学习到了Jackson原生链结合二次反序列化绕黑名单或者打TemplatesImpl恶意字节码。 学到如今更觉受益匪浅,话不多说,直接开审。 题目分析目录结构如下: IndexController.java: 123456789101112131415161718192021222324252627282
2024-08-03
#Java

SnakeYaml

SnakeYaml也算是常见的包,在之前打题的时候遇到过,国决java题两道solon也有这个包。 前言SnakeYaml是一个完整的YAML1.1规范Processor,用于解析YAML,序列化以及反序列化,支持UTF-8/UTF-16,支持Java对象的序列化/反序列化,支持所有YAML定义的类型。 Basic Practice依赖如下: 12345<dependen
2024-08-03
#Java

Jackson

Jackson跟fastjson很相近,所以前言还是从fastjson过渡过来。 前言主要还是介绍Jackson原生反序列化引用。 这里从Fastjson重新开始说起: 在Fastjson中,JSONArray和JSONObject都实现了Serializable接口,这两个类的toString方法都能触发toJSONString的调用,要把一个JSON对象转字符串,必然涉及到对象属性的获取,会调
2024-08-03
#Java

Fastjson

到了喜闻乐见的Fastjson。 前言Fastjson 是阿里巴巴的开源 JSON 解析库,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。顾名思义,FastJson的特点就是快。 先从最简单的用法说起吧。 Basic Usage依赖用的1.2.23 12345<dependency> <groupId>
2024-08-01
#Java

JNDI

JNDI它终于来了。 前言首先介绍一下什么是JNDI。 JNDI(Java Naming and Directory Interface):Java命名与目录接口 标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使Java应用程序能和这些命名服务和目录服务之间进行交互
2024-07-30
#Java

JavaWeb-动态加载字节码

这次续上CC3里没讲完的动态加载字节码。 利用 URLClassLoader 加载远程class文件Java的ClassLoader来用来加载字节码文件最基础的方法。 学到这里,知道反射的人应该也很清楚,ClassLoader就是一个“加载器”,告诉Java虚拟机如何加载这个类。Java默认的ClassLoader就是根据类名来加载类,这个类名是类完整路径,如 java.lang.Runtime
2024-07-29
#Java
1…3456

搜索

Hexo Fluid