fastjson漏洞以及流量分析
原理
解析json时,会使用autoType实例化某一个具体的类,并调用set/get方法访问属性。漏洞出现在autoType处理json对象时,没有对@type字段进行完整的安全性验证,可以传入危险的类并调用危险类连接远程RMI服务器,通过恶意类执行恶意代码,进而实现远程代码执行漏洞。
判断
正常请求时GET请求并且没有请求体,可以通过构造错误的POST请求,即可查看在返回包中是否有fastjson这个字符串来判断
反序列化
通过修改包中@type的值反序列化到指定的类型,通过构造恶意方法让代码执行
流量特征
JNDI注入+RMI
com.sun.jndi.rmi.object.trustURLCodebase
com.sun.jndi.cosnaming.object.trustURLCodebase
com.sun.rowset.JdbcRowSetImpl
rmi://x.x.x.x/xxx
JNDI注入+LDAP
com.sun.rowset.JdbcRowSetImpl
ldap://x.x.x.x/xxx
JdbcRowSetImpl利用链
com.sun.rowset.JdbcRowSetImpl
TemplatesImplcom.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl