Java反序列化CommonsCollections篇-CC7 前言CC7本质上也是对CC1的改写,走到了万恶之源LazyMap最终导致反序列化。 前置知识HashTable散列函数(哈希函数)中心思想: 不同参数返回不同哈希值 相同参数返回相同哈希值 比如我输入葡萄返回10,输入西瓜返回3,下次输入西瓜还是返回3 (传入不同参数时,哈希值一定都不相同么?事实上任何算法在理论上都不能保证。这种参数不同结果相同的情况学名叫做“Hash冲突(Hash碰撞)” 2024-06-04 JAVA #JAVA安全
Java反序列化CommonsCollections篇-CC5 前言本质上也就是前面几条CC链改来改去,换了一个入口类。 环境搭建 JDK8u65 commons-collections 3.2.1 1234567<dependencies> <dependency> <groupId>commons-collections</groupId> < 2024-06-02 JAVA #JAVA安全
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安全