漏洞深度分析|Apache Fineract 远程代码执行漏洞

news2024/11/25 19:22:42

项目介绍

Apache Fineract 是一个开源的系统,用于核心银行系统平台化建设。为创业者、金融机构和服务提供商提供了一个可靠、健壮的、可负担得起的金融服务解决方案。

项目地址

https://github.com/apache/fineract

漏洞概述

Apache Fineract 在 1.8.1 之前的版本中由于 FileSystemContentRepository.java 类对用户传入的文件路径名限制不当从而存在路径遍历漏洞,经过身份验证的攻击者可利用此漏洞删除或覆盖系统文件,Fineract 加载攻击者上传的恶意文件时将远程执行恶意代码。

影响版本

apache/fineract@(-∞, 1.8.1)

环境搭建

参考官方文档,使用docker-compose搭建

https://github.com/apache/fineract

漏洞复现

1、 官方文档中构建的docker默认用户是"User" : "nobody:nogroup"因此需要修改用户权限为root,修改方式为在docker-compose文件中添加user: "0:0"

2、上传测试文件到静态资源目录

 

3.、上传成功

 

漏洞分析

首先查看官方补丁发现修改了多处文件,其中比较核心的是对FileSystemContentRepository.java的修改,在patch代码中对传入敏感函数的文件路径进行了过滤,这些函数有deleteFileInternal、fetchFile、writeFileToFileSystem

 

在对上传文件的路径进行校验的同时,也使用白名单的方式检查了上传文件的类型

 

看完补丁再分析下调用链。Fineract项目的组织方式跟普通spingboot项目不太一样,Fineract的模块都是按目录放到一起的。存在漏洞的模块是documentmanagement,代码组织方式如下:

 

分析代码发现api入口点如下:

org.apache.fineract.infrastructure.documentmanagement.api.ImagesApiResource#updateClientImage(java.lang.String, java.lang.Long, java.lang.Long, java.io.InputStream, FormDataContentDisposition, FormDataBodyPart)

 

调用了addNewClientImage方法

 

忽略不重要步骤,最终上传的文件被writeFileToFileSystem处理,而该函数就是patch修复的函数之一

 

修复方式

升级到1.8.1版本(包含)以上

参考链接

https://nvd.nist.gov/vuln/detail/CVE-2022-44635

https://github.com/apache/fineract/commit/90f854b68886458a466b048807c26ccf31a6f555

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NR DCI Format介绍

NR DCI(下行控制信息)与LTE中的DCI类似,均是承载上/下行数据信道的调度信息(如PDSCH/PUSCH)。 如下表,摘自38212 7.3.1节。其中0-0/0-1承载上行数据信道PUSCH的调度信息。1-0/1-1承载下行数据信道PDSCH的调度信息,加扰…

QT断点调试[通俗易懂]

QT设置断点调试: 1、知道哪里可能出问题2、完全不清楚自己程序bug在哪3、跳过肯定不会出错的地方 前言: 这个东西难道大家不都应该会吗??? 本人用Qt Creator编写Qt的,~ 当然是有大佬用记事本写Qt的hhhh,每个人用IDE或者编辑器…

Python中__init__.py的作用介绍

一、文件__init__.py作用:package / module 的标志 下图的serrors包含这个文件时候,Python会将其当做一个模块(module)来处理,进而可以使用from serrors import xx方式导入serrors包中的文件或模块。 如图所示&#x…

Linux的IO(初阶)

Linux的IO(初阶) 文章目录Linux的IO(初阶)1.C语言文件IO1.1 C语言文件的(复习)1.2 相对路径与绝对路径(复习)1.3 C语言中文件操作函数(复习)1.4 C语言文件写入方式(复习)1.5 三个默认打开的流1.6 FILE类型的理解2.Linux系统文件IO2.1 打开文件的系统接口函数:open2.…

2023年,学测试还有前途吗?

最近因为疫情等各种原因,大厂裁员,失业等等频频受到关注。 不解释,确实存在,各行各业都很难,但是,说软件测试行业没有前途,我还真不认同(不是为培训机构说好话,大环境不…

面向对象编程 上 (1)

目录 学习面向对象内容的三条主线 面向过程与面向对象 面向过程(POP) 与 面向对象(OOP) 面向对象的三大特征 例子:人把大象装进冰箱 面向对象的思想概述 类和对象 面向对象的思想概述 Java类及类的成员 类的语法格式 创建Java自定义类 对象的创建和使用 类…

2022最新的护眼灯怎么选?护眼台灯到底有用吗

众所周知,人眼能看到各种事物,都是由于光线照射到物体身上,然后反射进入人眼成像,但是如果光线不合理或者不合适,那么进入人眼的光线就会对造成巨大的伤害。所以护眼灯到底有没有用,就在于其发出的光线能不…

【python与数据分析】实验十三 北京市空气质量

目录 一、实验内容 二、完成情况 三、数据分析 1.问题描述 2.编程思路 3.程序代码 4.程序运行结果 (1)2014年-2019年AQI时间序列折线图 (2)各年AQI折线图、AQI直方图、PM2.5与AQI散点图、空气质量整体情况的饼图 ​&am…

关于虚数与复数

关于虚数与复数1 数的分类1.1 实数域1.2 虚数与复数2 复数的性质及其运算2.1 复平面、大小及辐角2.2 复数四则运算2.3 共轭复数2.4 复数的极坐标表示3 欧拉公式3.1 欧拉公式证明3.2 利用欧拉公式表示极坐标3.3 欧拉公式推导三角函数加法定理4 复数的性质、乘法和除法运算和极坐…

catia基本操作

1.2CATIA的基本操作_哔哩哔哩_bilibili ctrl鼠标中键 视图放大缩小 alt鼠标中键 视图平移 Alt Enter 性质 4、中键可以平移图形 中键和左键(或右键)可以实现旋转 按下中键,再按右键,放开右键,拖动鼠标&#xff…

【阿里云】阿里云跨账号内网互通

阿里云VPC对等连接提供连通两个VPC的网络连接,您可以使用私有IP地址直接通信,两个VPC就像在同一个网络中一样。您可以与自己同地域或者跨地域其他VPC之间创建对等连接,也可以与其他账号的同地域或者跨地域VPC之间建立对等连接,同地…

PHP基于thinkphp的旅游见闻管理系统#毕业设计

随着旅游行业的不断发展,各家旅游行业之间的竞争日益激烈,旅游部门所需的信息量越来越大,业务操作中涉及的各种线路情况、用户情况以及旅游协作部门的情况越来越复杂多变。而除了一些个别地区已采用了的旅游网站,一般通常是以原始的手工方式处理/新闻资讯。但是工作人员若仅靠手…

JavaEE Spring MVC 常用注解

RequestMapping ⽤来注册接⼝的路由映射。当⽤户访问⼀个 url 时,将⽤户的请求对应到程序中某个类的某个⽅法的过程就叫路由映射。 Controller //类注解不能忘 RequestMapping("/webcontroller") public class WebController {RequestMapping("/say…

CSDNtop1全栈接口测试教程 jmeter接口测试,接口自动化测试【2】

延时等待(全局性) api 测试⽤例执⾏速度⾮常快,某些时候因为业务的特性想让它延迟⼏秒执⾏,那么这个时候就使⽤延时等待。 参数化 可以理解为:⼀个测试点需要多次操作,并且每次操作数据都是不⼀样但测试步…

机器学习4超参数问题

文章目录一、超参数问题11、超参数:2、如何寻找好的超参数?二、超参数问题2综上所述三、超参数问题3搜索明可夫斯基距离相应的p;更多关于距离的定义:欧拉距离曼哈顿距离进一步推广可以发现其中有一定一致性明可夫斯基距离:&#x…

全网最全(万字整理)_SpringBoot整合ThymeLeaf

文章目录SpringBoot整合Thymeleaf0x01_入门案例0x02_Thymeleaf视图解析简介0x03_Thymeleaf的表达式0x04_Thymeleaf的标签th:textth:eachth:objectth:hrefth:actionth:onclickth:ifth:value0x05_内置对象#dates#Strings#Numbers域对象0x0x_补充一些概念国际化Thymeleaf缓存区重定…

01-09-hive-入门基本概念-hive-mysql安装

01-hive-入门基本概念: 什么是hive hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表&#xf…

算法竞赛入门【码蹄集进阶塔335题】(MT2271-2275)

算法竞赛入门【码蹄集进阶塔335题】(MT2271-2275) 文章目录算法竞赛入门【码蹄集进阶塔335题】(MT2271-2275)前言为什么突然想学算法了?为什么选择码蹄集作为刷题软件?目录1. MT2271 完全立方数32. MT2272 质数率3. MT2273 元素共…

如何修复 Windows 11/10上的 0x8007023e Windows 更新错误

修复 0x8007023e 错误 运行 Windows Update 疑难解答重置 Windows Update 组件使用 DISM 工具修复 Windows Update 客户端从 Microsoft update Catalog 网站下载并安装更新运行 Microsoft 支持和恢复助手系统更新根据 Windows 质量更新服务节奏发布到 Windows 设备。如果当您尝…

zookeeper学习(一)zk特性与节点数据类型详解(2022)

Zookeeper是一个开源的分布式协调框架,主要用来解决分布式集群中应用系统的一致性问题。从设计模式角度来理解其实zk是一个基于观察者模式设计的分布式服务管理框架。 CAP理论: cap理论指出对于一个分布式计算系统来说,不可能同时满足以下三…