行业知识
Fastjson 1.2.24 反序列化导致任意命令执行漏洞复现(CVE-2017-18349)
写在前面
CVE-2017-18349 ���的是 fastjson 1.2.24 及之前版本存在的反序列化漏洞,fastjson 于 1.2.24 版本后增加了反序列化白名单;
而在 2019 年,fastjson 又被爆出在 fastjson
关于这两个漏洞的复现环境在 vulhub 下都有:
本篇博客主要介绍 1.2.24-rce 的复现,即 fastjson 1.2.24 反序列化导致任意命令执行漏洞。
攻击机:kali Linux(192.168.249.128)
靶机:kali Linux(192.168.249.132)
目录
一、什么是 Fastjson
二、漏洞原理
三、影响版本
四、环境搭建
五、漏洞验证
六、漏洞利用
1、marshalsec 安装
2、java 环境安装
3、命令执行
4、反弹shell
~~~~~~~~~~~~ 正文开始 ~~~~~~~~~~~~
一、什么是 Fastjson
Fastjson 是一个 Java 库,用于在 Java 对象和 JSON 数据之间进行转换,它提供了一种简单而高效的方式来序列化 Java 对象为 JSON 格式的字符串,以及将 JSON 字符串反序列化为 Java 对象。Fastjson 支持各种类型的 Java 对象,包括预先存在但没有源代码的对象。
二、漏洞原理
fastjson 在解析 JSON 数据时存在自动类型转换功能(autoType),利用该功能构造恶意 JSON 数据,使其在反序列化过程中触发漏洞利用链,从而实现恶意代码的执行。
详细过程分析:
1、目标网站在解析 JSON 数据时,未对 JSON 内容进行验证,直接将 JSON 解析成 Java 对象并执行。
2、攻击者构造特定的 payload(负载),其中包含恶意的 Java 对象及执行代码。
3、攻击者控制 URL 参数为之前开启的恶意 RMI 服务器地址,或者通过其他方式将恶意 JSON 数据传递给目标网站。
4、恶意 RMI 服务器返回 ReferenceWrapper 类,这是 Java 远程方法调用(RMI)中的一种对象类型。
5、目标网站在执行 lookup 操作时,通过 decodeObject 方法将 ReferenceWrapper 类转换成 Reference 类,然后远程加载并实例化攻击者恶意构造的 Factory 类,这个 Factory 类通常包含了恶意代码的执行逻辑,在实例化时触发 Factory 类中的静态代码段,从而执行恶意代码。
三、影响版本
受影响版本范围:fastjson
上一篇:阿里云服务器c盘该怎么扩容