Java反序列化CommonsCollections篇-CC2 前言CC3中我们了解到TemplatesImpl()调用Transformer()方法就可以代码执行。 CC2就在在这个基础上,结合CC4改写。CC2最大的优势就是不用Transformer 数组。 环境搭建 JDK8u65 CommonsCollections4 1234567<dependencies> <dependency> <group 2024-06-02 JAVA #JAVA安全
Java反序列化CommonsCollections篇-CC4 前言前面几条链都是CommonsCollections3中产生的反序列化漏洞,后来Apache更新了大版本4.0,也产生了反序列化漏洞。 环境搭建 JDK8u65 CommonsCollections4 1234567<dependencies> <dependency> <groupId>org.apache.commons</gr 2024-06-01 JAVA #JAVA安全
源码部署WebGoat 环境搭建WebGoat项目地址: WebGoat 需要JAVA17或者JAVA21,因为Spring boot3最低要求是JAVA17. 下载项目1git clone https://github.com/WebGoat/WebGoat.git 使用IDEA构建项目IDEA自带maven所以我们不需要单独下载 找到~/WebGoat/pom.xml用idea打开,选择open as peoje 2024-05-29 JAVA #JAVA代码审计
Java反序列化CommonsCollections篇-CC3 前言CC1和CC2都是通过反序列化自动执行了object()方法最终导致了InvokerTransformer.transform(Method.invoke())的命令执行,那有没有一种可能,不通过InvokerTransformer.transform(Method.invoke())来进行命令执行?CC3给出了答案,CC3是通过JAVA的动态类加载机制来自动执行恶意类代码。 环境配置 JDK 2024-05-27 JAVA #JAVA安全
Java反序列化CommonsCollections篇-CC6(最好用的CC链) 环境搭建 JAVA版本JAVA 21 commons-collections 3.2.1 1234567<dependencies> <dependency> <groupId>commons-collections</groupId> <artifactId>commons 2024-05-25 JAVA #JAVA安全
Java反序列化CommonsCollections篇-CC1 环境搭建 JAVA版本8u65 commons-collections 3.2.1 1234567<dependencies> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-coll 2024-05-23 JAVA #JAVA安全
JAVA反序列化 为什么JAVA需要反序列化1. 数据持久化 序列化可以将 Java 对象转换为字节序列,并将其存储到文件中或数据库中,该字节包含对象的数据、对象的类型、对象的存储属性。这使得 Java 程序可以很容易地保存和加载数据,而无需每次都重新创建对象。例如,一个 Java 应用程序可以将用户数据序列化到文件中,以便在下次启动时加载。 2. 远程通信 序列化还可以用于在网络上传输 Java 对象。例如,一个 2024-05-21 JAVA #JAVA安全
反射 前言学习Java的反射机制是为了理解Apache Commons Collections中的反序列化漏洞做准备的。 反射概念反射是一种间接操作目标对象的机制,允许程序在运行时获取类的信息,并且在运行时动态地创建对象、调用方法、访问字段等等;对于任意一个类都能够知道这个类所有的属性和方法,并且对于任意一个对象,都能够调用它的方法/访问属性。 实质就是得到一个Class对象后,反向获取Cl 2024-05-16 JAVA #JAVA安全
创建型-单例模式 饿汉式1234567891011public class Singleton { private static final Singleton instance = new Singleton(); //用于引用全局唯一的单例对象,在一开始就创建好 private Singleton() { //不允许随便new } public stat 2024-05-10 JAVA #JAVA设计模式
RULDNS链 URLDNS链优点 使⽤Java内置的类构造,对第三⽅库没有依赖 在⽬标没有回显的时候,能够通过DNS请求得知是否存在反序列化漏洞 利用链分析ysoserial 中URLDNS链 , 看这个利用链只涉及两个类HashMap和URL。 HashMap类HashMap自己实现了readObject()。 1234567for (int i = 0; i < mappings; i++) & 2024-05-09 JAVA #JAVA安全