前置知识
今天复现了常见的fastjson
反序列化漏洞,了解该漏洞需要一些前置的知识,这里总结一下:
Fastjson
fastjson是一个Java的库,可以将Java对象转换为Json字符串,也可以将Json字符串转换为Java对象,Fastjson也可以操作一些Java中的对象。
JNDI
JNDI(Java Naming and Directory Interface)
是一个应用程序接口,主要提供查找、访问、命名常见的接口,定位网路、用户、对象和服务一些资源,简单理解就是JNDI
将常用的功能、组件、服务取了名字,然后使用名字来查找使用。
JNDI可以使用RMI
远程对象调用,支持的常见服务有DNS、LDAP、RMI、CORBA
RMI
RMI(远程方法调用Remote Method Invocation),远程调用方法在分布式编程中很常见,主要实现远程方法的调用,其中RMI
是专门给Java环境设计的远程方法调用机制
JDNI注入
通过上述的一些基础前置知识,大概可以了解到JNDI
中有一个服务RMI
可以支持Java远程方法的调用,如果使用rmi调用的远程地址中的方法有一些危险的代码,并没有经过处理,就会导致命令的执行,具体流程图如下。转载:先知社区
地址: https://xz.aliyun.com/t/12277?time__1311=mqmhD5YIOhOD%2FD0lbGkb%3DbdF5G8%2BneD