自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Java安全学习笔记--一次对JNDI注入失败的问题排查(手写POC以及rmi)

前言Exception in thread "main" java.lang.UnsupportedClassVersionError: Exp : Unsupported major.minor version 52.0

2022-02-05 15:30:11 3302 1

原创 java安全学习笔记--fastjson1.2.24反序列化漏洞两种利用链分析(TemplatesImpl,JdbcRowSetImpl)

测试环境jdk1.7fastjson 1.2.24Fastjson简介及用法Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,也可以将 JSON 字符串转换为 Java 对象,常用在前后端分离的项目中,用来处理前端传来的json数据,JSON字符串和Java对象的转换就是基于序列化和反序列化来实现的。演示代码:package com.test; import com.alibaba.fastjson.JSON;

2022-02-03 16:18:40 2754

原创 Java安全学习笔记--基于ysoserial反序列化利用工具CC2和CC5链构造方式的思考

前言:ysoserial反序列化利用工具的CC5链和CC6链的利用链核心都还是LazyMap+ChainedTransformer,两条利用链通过TideMapEntry的toString和hashCode方法来触发核心利用链,最终触发get方法把三个方法放一块public V getValue() { return this.map.get(this.key);//这里的this.map就是我们的LazyMap}//LazyMap的get方法:public V get(Object

2022-02-02 13:07:16 2483

原创 Java安全学习笔记--反序列化利用链CC7链

测试环境:jdk1.8(jdk8u71)Commons Collections4.0Hashtable和HashMap很相似,使用链地址法解决哈希冲突,线程安全Cc7和cc6差不多,cc7使用Hashtable来触发LazyMap的get方法,比cc6的稍微复杂一些。利用链核心 final Transformer chainedTransformer= new ChainedTransformer(new Transformer[0]); Transfo

2022-01-27 20:01:39 1370

原创 Java安全学习笔记--反序列化利用链HashMap类源码简单分析

前言ysoserial反序列化漏洞利用工具的CC6和CC7链都使用了哈希表的数据存储结构,说到哈希表在Java中用的最多的使用哈希表存储结构的就是HashMap类了,同时HashMap类也是CC6链中HashSet类的底层实现基础,增删改查都是基于一个在构造函数中最开始实例化的一个HashMap类,CC7链中的Hashtable类和HashMap类用法及结构也非常相似,简单分析一下HashMap的源码还是比较有意义的。

2022-01-25 19:51:58 691

原创 Java安全学习笔记--反序列化漏洞利用链CC6链

测试环境:jdk1.8(jdk8u71)Commons Collections4.0HashSetHashSet使用的是Hash表的数据结构,增删改查的时间复杂度为O(1),Set是一种集合,元素没有添加顺序,集合中不会有重复元素,结合一下就大概知道HashSet的大概属性了,具体是否重复的算法是根据元素所属对象的equals()方法来判断是否重复,默认是Object这个父类的方法,会比较引用是否相同,这个方法是可以重写的,比如String类就重写了这个方法,会比较内容是否相同 .

2022-01-24 21:04:48 1029

原创 Java安全学习笔记--反序列化漏洞利用链CC5链

测试环境jdk1.8(jdk8u71)Commons Collections4.0在jdk1.8的时候Annotationinvocation的readObject方法被改写,cc1链就不适用了,cc5链是基于Lazymap类在jdk1.8使用TiedMapEntry+BadAttributeValueExpException来触发LazyMap的get方法。CC1LazyMap链利用链核心 Transformer[] transformers=new Transforme.

2022-01-22 11:15:45 1202

原创 Java安全学习笔记--反序列化漏洞利用链CC4链

测试环境jdk1.8(jdk8u71)Commons Collections4.0基于cc2和cc3,由于TransformingComparator+priorityqueue是可以触发transforme()方法所以可以利用这个两个类的组合来代替cc3链中的LazyMap或Transformedmmap+AnnotationinvocationHandler的组合,从而构成了cc4。恶意类import com.sun.org.apache.xalan.int...

2022-01-20 22:26:24 1550

原创 Java安全学习笔记--反序列化漏洞利用链CC3链

测试环境jdk1.7(jdk7u80)Commons Collections3.1CC3链大体上是CC1和CC2链的结合,利用链核心原理基于CC2链的(动态字节码注入恶意类),使用TransformedMap和lazyMap配合cc1的annotationinvocation类触发newTransformer方法,所以CC3链不适用jdk1.8。恶意类import com.sun.org.apache.xalan.internal.xsltc.DOM;import com.sun

2022-01-19 19:34:37 1214

原创 Java安全学习笔记--反序列化漏洞利用链CC2链

测试环境jdk1.8(jdk8u71)apache common cellection 4.0预备知识简述Javassist动态字节码编程字节码技术可以动态改变某个类的结构(添加/删除/修改新的属性/方法)关于字节码的框架有javassist,asm,bcel等,javassist相对简单不需要掌握字节码指令相关知识即可使用。几个关键的类:ClassPool:ClassPool 类可以控制的类的字节码,例如创建一个类或加载一个类,是CtClass对象集合的容器。一旦C..

2022-01-18 20:41:00 1041

原创 Java安全学习笔记--反序列化漏洞利用链CC1链(2)

测试环境jdk1.7(jdk7u80)CommonCellection3.1TransformedMaptransfomedMap利用相对没那么繁琐,首先找到transformedMap类中调用transform()方法的地方,总共有三处,poc中利用的是这一处protected Object checkSetValue(Object value) { return this.valueTransformer.transform(value);}结合Anotation

2022-01-17 18:52:19 556

原创 Java安全学习笔记--反序列化利用链CC1链(1)

测试环境jdk1.7(jdk7u80)CommonCellection3.1预备知识简述反射每个类在第一次创建时会生成一个class实例,这个class实例保存着类的所有信息,可以通过:public Field[] getFields();//返回类的成员方法public Method[] getMethods();//返回类的构造方法public Constructor<T> getConstructor(Class<?>... para

2022-01-16 19:09:05 1010

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除