看啥推荐读物
专栏名称: Gamma实验室
Gamma实验室是专注于网络安全攻防研究的实验室,不定时向外输出技术文章以及自主研发安全工具,技术输出不限于:渗透,内网,红队,免杀,病毒分析,逆向,ctfwp等,实验室只用于技术研究,一切违法犯罪与实验室无关!
目录
相关文章推荐
今天看啥  ›  专栏  ›  Gamma实验室

Xalan链+fastjson Rce分析

Gamma实验室  · 公众号  ·  · 2023-12-14 16:40
0x01 前沿java.lang.ClassLoader是java中负责类加载的抽象类,类中包含一个特别重要的方法defineClass,它用于将字节数组(代表一个类的字节码)转换为`Class`对象(加载这个类到jvm),这个方法通常被子类用于实现类加载的逻辑。定义:protected final Class> defineClass(String name, byte[] b, int off, int len)参数说明:name:类的全限定名。b:表示类的字节码的字节数组。off:表示字节数组的起始偏移量。len:表示要使用的字节数。defineClass方法通常被自定义的类加载器重写,用于将字节数组转换为Class对象,这对于动态加载类或者加载非标准的类文件格式非常有用。如下展示了如何使用自定义的类加载器和defineClass方法来定义类:public class MyClassLoader extends ClassLoader { //这里定义新的方法,调用了父类的definclass public Class> defineClassFromByteArray(String name, byte[] b) { return defineClass(n ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照