Java JNDI注入总结
概念JNDI(Java Naming Directory Interface),Java命名和目录接口,是SUN公司提供的一种标准的Java命名系统接口。通过调用JNDI的API应用程序可以定位资源和其他程序对象。 JNDI可访问的现有目录及服务包括:JDBC(Java数据库连接)、LDAP(轻型目录访问协议)、RMI(远程方法调用)、DNS(域名服务)、NIS(网络信息服务)、CORBA(公共对象请求代理系统结构) 命名服务/目录服务JNDI包括命名服务(Naming Service)和目录服务(Directory Service)。 命名服务是一种通过名称来查找实际对象的服务。例如在RMI中,Naming.lookup方法通过查找名称来获取远程对象的代理类 相关概念: Name:名称。要么在命名系统中查找对象,需要提供对象的名称,如java:comp/env/jdbc/DataSource Naming...
Java反序列化:CB利用链深度解析
Commons BeanutilsApache Commons Beanutils,是Apache Common下的一个工具集的另一个项目,它提供对普通Java类对象(JavaBean)的一些操作方法 JavaBean是一种特殊的Java类,主要用于封装数据并在应用程序中传递,其具有的特点: 无参构造函数:JavaBean必须提供一个默认的无参构造函数 私有属性:所有属性必须声明为私有(private) 公共访问方法:通过getter和setter方法访问和修改属性值 可序列化:实现Serializable demo: 123456789101112131415161718192021222324public class Person implements java.io.Serializable { private String name; private int age; // 无参构造函数 public Person() {} // Getter 和 Setter 方法 public String getName()...
Java反序列化:CC6利用链深度解析
环境搭建 jdk 8u71 Commons Collection 3.2.1 jdk下载地址:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html#license-lightbox 具体搭建流程与CC1链是一样的,可以看我之前的文章。注意CC6对jdk是不受版本限制的,所以任意版本都行,但Commons...
Java反序列化:CC7利用链深度解析
前言CC7思路一样是通过找到另外一条链来调用LazyMap.get()方法 环境搭建 jdk 8u71 Commons Collection...
Java反序列化:CC5利用链深度解析
前言在前面我们CC6链的学习中,由于jdk 8u71以后的版本修改了AnnotationInvocationHandler类中的readObject方法,我们无法通过CC1链调用LazyMap.get(),所以我们找到了org.apache.commons.collections.keyvalue.TiedMapEntry类,它的getValue方法可以调用map.get方法: 同时在该类中存在hashCode()方法能调用getValue()方法,这让我们自然而然想到HashMap类作为入口 而在CC5中,我们将学习通过TiedMapEntry类的另一个方法toString来调用LazyMap.get()方法。 环境搭建 jdk 8u71 Commons Collection...
Java反序列化:CC4利用链深度解析
前言针对common-collections4,ysoserial也是给出了两条反序列化调用链,一个是我们前文分析的CC2,另一个就是本文分析的CC4。 环境搭建 jdk 8u71 commons-collections-4.0 CC4分析其实CC4链就是将CC2链中的InvokerTransformer调用TemplatesImpl.newTransformer()方法换成了InstantiateTransformer来加载字节码,具体原理可以看我之前CC3链分析。 大致就是TrAXFilter的构造方法能调用templates.newTransformer(): 而InstantiateTransformer重写的transform方法中能获取类的构造方法方法并创建实例: 所以iArgs和iParamTypes都是我们可控的,可以通过将该方法来执行我们的TemplatesImpl.newTransfomer()方法: 12345678910正常写法:Constructor...










