java
文章平均质量分 81
java有关知识点
Tr4n
路漫漫其修远兮,吾将上下而求索!
展开
-
【java安全】FastJson反序列化漏洞浅析
前面我们学习了RMI和JNDI知识,接下来我们就可以来了解一下FastJson反序列化了FastJson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以将JSON字符串反序列化到JavaBean。原创 2023-08-24 16:27:40 · 1926 阅读 · 0 评论 -
【java安全】JNDI注入概述
是Java提供的Java命名和目录接口。通过调用JNDI的API可以定位资源和其他程序对象。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。原创 2023-08-24 16:26:56 · 1524 阅读 · 0 评论 -
【java安全】Log4j反序列化漏洞
Log4j是Apache的开源项目,可以实现对System.out等打印语句的替代,并且可以结合spring等项目,实现把日志输出到控制台或文件等。本文介绍的Log4j反序列化漏洞都是由于未对传入的需要发序列化的数据进行过滤,导致了恶意构造从而造成相关的反序列化漏洞。方法进行反序列化,并且整个步骤没有任何过滤,因此当我们传入的数据为恶意的cc链就可以触发反序列化漏洞了。我们运行一下这个类,它会监听本地的7777端口,然后我们需要将数据传递进去。这里和上面类似,也会将接受到的数据以。的构造方法,返回一个。原创 2023-08-18 14:13:24 · 2373 阅读 · 0 评论 -
【java安全】原生反序列化利用链JDK7u21
进行反序列化利用。我们肯定会想,如果不利用第三方类库,能否进行反序列化利用链呢?这里还真有:JDK7u21。但是只适用于java 7u及以前的版本在使用这条利用链时,需要设置jdk为jdk7u21。原创 2023-08-03 18:18:35 · 3488 阅读 · 1 评论 -
【java安全】无Commons-Collections的Shiro550反序列化利用
如果两个不同版本的库使用了同一个类,而这两个类可能有一些方法和属性有了变化,此时在序列化通 信的时候就可能因为不兼容导致出现隐患。因此,Java在反序列化的时候提供了一个机制,序列化时会 根据固定算法计算出一个当前类的serialVersionUID值,写入数据流中;反序列化时,如果发现对方的环境中这个类计算出的serialVersionUID不同,则反序列化就会异常退出,避免后续的未知隐患。原创 2023-08-03 11:59:49 · 1997 阅读 · 0 评论 -
【java安全】CommonsBeanUtils1
在之前我们学习了,它是java中的一个优先队列,队列的每个元素都有优先级,在反序列化这个对象的时候,为了保证队列顺序,会将队列中的元素进行排序,从而调用了接口的compare()方法,进而执行恶意反序列化操作我们能不能找到除了之前提到的类以外的其他可以利用的对象?我们需要了解一下。原创 2023-08-02 17:47:45 · 1270 阅读 · 0 评论 -
【java安全】RMI
RMI远程方法调用,是java独立的一种机制。RMI的作用就是在一个java虚拟机调用另一个java虚拟机上对象的方法在网络传输的过程中,RMI中对象是通过序列化的形式进行编码传输,既然有序列化,必然会有反序列化,RMI服务端在接收到序列化后的会将对象进行反序列化。在反序列化攻击中,我们可能找不到反序列化的点,那么使用RMI就可以作为反序列化利用链的触发点 *****原创 2023-07-25 16:41:08 · 1416 阅读 · 0 评论 -
[java安全]CommonsCollections2
是一个重要的辅助开发库。包含了⼀些Java中没有的数据结构和和辅助方法,不过随着Java 9以后的版本中原⽣库功能的丰富,以及反序列化漏洞的影响,它也在逐渐被升级或替代。在2015年cc链被提出时,commons-collections:commons-collections(当时版本3.2.1)org.apache.commons:commons-collections4(当时版本4.0)原创 2023-07-20 17:05:51 · 708 阅读 · 0 评论 -
[java安全]TemplatesImpl在Shiro550反序列化
其实Shiro550反序列化的不同点就是不能为数组,但是我们经过链子的巧妙传参发现可以去除掉,这样原本两个元素的数组变成一个元素,就不需要使用数组了文末我编写了一个结合的POC,可以在jdk1.7、1.8的某些版之前使用(貌似是8u71),没有使用,而是改用了。原创 2023-07-20 00:09:36 · 217 阅读 · 0 评论 -
[java安全]类加载器&CommonsCollections3
前面我们学习了等等cc链,这里我们学习第三条链子,这里需要用到类,由于这个类会使用到一些类加载器中相关的知识,所以我们需要先学习一些类加载器知识需要注意的是,类对加载的字节码是有要求的,这个字节码对应的类必须是类的子类所以我们构造一个特殊的类,继承类我们执行一下,得到结果:是一个可以加载字节码的类,通过调用方法,可以执行这段字节码的类构造方法。原创 2023-07-18 23:26:44 · 758 阅读 · 0 评论 -
[java安全]CommonsCollections6
之前我们分析了利用链,但是在java 8u71以后这个链就不能继续用了,原因是类的try {if(var12!我们需要找一个绕过高版本的利用链。原创 2023-07-16 23:06:17 · 413 阅读 · 0 评论 -
[java安全]CommonsCollections1(LazyMap)
前面我们学习了cc1链使用构造,但是ysoserial使用的是LazyMap进行构造的,相对复杂一点LazyMap和都是在模块中,我们想要测试首先需要创建maven项目,然后导入坐标原创 2023-07-16 18:01:56 · 2635 阅读 · 0 评论 -
[java安全]URLDNS
URLDNS利用链是一条很简单的链子,可以用来查看java反序列化是否存在反序列化漏洞,如果存在,就会触发dns查询请求它有如下优点:使用java内置类构造,对第三方库没有依赖在目标没有回显的时候,可以使用DNS请求得知是否存在反序列化漏洞在学习URLDNS之前,我们需要了解一些java内置的类。原创 2023-07-15 10:50:10 · 3020 阅读 · 0 评论 -
[java安全]反射
在讲反射之前,我们需要知道什么是反射运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。简单的说:反射是指在运行时动态地获取一个类的信息,包括其成员变量、方法和构造函数等,以及在运行时对它们进行操作的能力。使用反射,你可以在编译时期并不知道某个类的具体类型,而在运行时期动态地创建该类的对象、调用该类的方法,或访问和修改该类的属性。原创 2023-05-28 18:19:00 · 1281 阅读 · 0 评论 -
mysql数据库
注意逗号,空格char类型占用固定空间大小(性能更高),varchar占用可变空间大小(性能低)truncate会把数据全部清除,但结构还在...原创 2022-04-17 19:43:50 · 286 阅读 · 0 评论 -
java集合
集合集合类体系结构一、Collection集合Collection集合 迭代器二、List集合List集合的特有方法并发修改异常列表迭代器增强for循环常见数据结构:栈、队列、数组、链表List集合子类特点LinkedList集合特有功能三、Set集合哈希值hash...原创 2022-04-07 13:16:00 · 398 阅读 · 0 评论 -
Java语法三
一、面向对象1、什么是对象面向对象:面对对象做一些操作2、什么是类3、类的定义4、对象的使用5、封装6、StringBuilder返回值是StringBuilderappend重复用(套娃)7、继承(1)方法重写二、1、包的使用2、权限修饰符3、final...原创 2022-04-04 11:23:57 · 224 阅读 · 0 评论 -
java基础语法2(语句)
1、数据输入 (Scanner)2、switch语句case穿透3、 Random 的使用 (产生随机数)4、 IDEA 的使用创建项目 -> 创建模块 -> 模块src下创建一个包 -> 创建类 -> 编写代码5、数组(推荐第一种)5.1 数组初始化之动态初始化5.2 j...原创 2022-03-20 12:30:06 · 422 阅读 · 0 评论 -
java基础语法1
一、JVM、JRE、JDK 二、常用 DOS 指令三、基础语法1、注释2、关键字特点3、常量分类null 空常量不能直接输出truefalse是关键字4、数据类型4.3 数据类型内存占用和取值范围5、变量概述Java中数字默认为int型小数默认为double型6、标识...原创 2022-03-20 11:46:40 · 287 阅读 · 0 评论