本文作者:某学员A(Web漏洞挖掘实战班2期学员)
一、漏洞概述
fastjson在解析json的过程中,支持使用@type字段来指定反序列化的类型,并调用该类的set/get方法来访问属性,当组件开启了autotype功能并且反序列化不可信数据时,攻击者可以构造数据,使目标应用的代码执行流程进入特定类的特定setter或者getter方法中,即可构造出一些恶意利用链。在Fastjson 1.2.47及以下版本中,利用其缓存机制可实现对未开启autotype功能的绕过。
二、影响版本
Fastjson1.2.24以及之前的所有版本
三、漏洞利用
创建TouchFile.java文件,内容如下:
使用javac TouchFile.java编译为class文件
使用mvn打包marshalsec项目得到jar包mvn clean package -DskipTests(vps不好编译所以我在本机编译然后传到了vps)
使用Python开启http服务 :python -m http.server 8000
开启rmi
访问漏洞页面,抓包,构造payload(抓到的包是GET,这里要改为POST,并将content-type修改为application/json)
反弹shell成功,获得flag
总结: