Java反序列化和JNDI注入

一、反序列化常见利用类

利用类的作用:加载类或者执行命令。

// 类加载
(1)com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl(BeanComparator、EqualsBean/ToStringBean可以间接调用TemplatesImpl)
(2)java.util.ServiceLoader$LazyIterator / com.sun.xml.internal.ws.util.ServiceFinder$LazyIterator (配合BCEL)
// 反射调用
(3)javax.imageio.ImageIO$ContainsFilter
(4)java.beans.EventHandler
(5)com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$GetterSetterReflection
// 非JDK自带
(6)org.codehaus.groovy.runtime.MethodClosure
(7)org.codehaus.groovy.runtime.ConvertedClosure
(8)groovy.util.Expando

(1)TemplatesImpl

TemplatesImpl用于CommonsBeanutils、Fastjson,其调用链如下,核心在于得到恶意类的Class对象。然后执行newInstance()操作触发static代码块中的恶意代码。

TemplatesImpl.getOutputProperties(

你可能感兴趣的:(全栈网络安全,渗透测试,代码审计,网络安全工具开发,java,开发语言)