Sp4rks3'blog
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

源码部署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中的反序列化漏洞做准备的。 反射概念反射是一种间接操作目标对象的机制,允许程序在运行时获取类的信息,并且在运行时动态地创建对象、调用方法、访问字段等等;对于任意一个类都能够知道这个类所有的属性和方法,并且对于任意一个对象,都能够调用它的方法/访问属性。 通俗来讲就是先获取一个类的原型,通过这个原型映
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安全

创建型-建造者模式

前言12345678910111213141516public class Student { int id; int age; String name; String gender; String profession; List<String> awards; public Student(int id, int age, St
2024-05-08
JAVA
#JAVA设计模式

创建型-抽象工厂模式

前言​ 工厂模式关注于创建单个对象,通过一个工厂类来实现。但是假如遇到需要创建一系列相关或相互依赖的对象的时候,就有些乏力了,而抽象工厂模式能很好的解决这个问题。 抽象工厂模式123456789101112public abstract class Fruit { //水果抽象类 protected final String name; protected Fruit(Str
2024-05-07
JAVA
#JAVA设计模式
12345

搜索

Hexo Fluid