本文作者:某学员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
总结:
使用payload攻击靶机(该payload需要指定rmi地址)
靶机引发反序列化漏洞,发送了进行rmi远程发放调用,去连接VPS
VPS的rmi服务指定加载恶意java类,所以靶机通过VPS的rmi服务最终加载并执行恶意java类
靶机引发恶意系统命令执行
如果喜欢本文 欢迎 在看丨留言丨分享至朋友圈 三连
报名咨询请联系小客服
扫描下方二维码加入星球学习
加入后邀请你进入内部微信群,内部微信群永久有效!