springboot maven项目漏洞排查修复过程记录(个人笔记)

问题描述

在项目交付后往往会遇到第三方检测机构或者公司内部在交付之前进行的系统安全漏洞检测,本文章记录一次springboot maven项目的漏洞排查修复过程。

过程记录:

在这里插入图片描述

大概意思就是commons-beanutils包在1.3.10-1.9.2期间的版本存在此漏洞,攻击者可以“操纵”ClassLoader并通过class参数执行任意代码。

  • 排查思路
    1.检索项目pom文件是否直接引用了commons-beanutils相关依赖

    • 解决方案:请升级到漏洞版本范围外的版本

    2.查看maven的依赖树,确定是否有其他jar包引用了涉及漏洞的jar包,如果有项目中使用的其他jar包(例a.jar)引用了涉及漏洞的jar包(例b.jar)

    • 问题场景1:若a.jar在新版本中引用了b.jar的漏洞以外的版本,则只需升级a.jar
    • 问题场景2:若a.jar在新版本中还是引用了b.jar的漏洞,则先需要排除a.jar对b.jar的引用,再单独引用b.jar的漏洞以外版本
  • 排查过程记录

    1.pom文件搜索commons-beanutils

    在这里插入图片描述

    可以看到并没有在我的项目pom文件中找到commons-beanutils的直接引用,说明是有项目中用到的其他jar包间接引用了commons-beanutils包。

    2.打开命令窗口,查看依赖树,输入mvn dependency:tree 回车,会列出所有引用jar包的依赖关系

    在这里插入图片描述

    3.搜索commons-beanutils,可以看出使用的net.sf.json包间接引用了commons-beanutils:jar:1.8.0,在1.3.10-1.9.2漏洞版本范围内

    在这里插入图片描述

    4.在maven仓库搜索net.sf.json 附网站地址:https://mvnrepository.com/

    在这里插入图片描述

    5.点击进入,可以看出新版本已经是2.4了

    在这里插入图片描述

    6.点击2.4版本,查看Vulnerabilities项列表,列出了当前版本存在的未修复漏洞,发现CVE-2014-0114漏洞还是在当前版本中存在的

    在这里插入图片描述

    7.继续再搜索commons-beanutils,可以看出1.9.4版本中已经不存在CVE-2014-0114漏洞了

    在这里插入图片描述

  • 解决方案
    从以上分析过程中可以得出结论,我们不能通过升级net.sf.json版本来避免CVE-2014-0114漏洞,因为net.sf.json的新版本2.4还是引用了commons-beanutils:jar:1.8.0,在1.3.10-1.9.2漏洞版本范围内,符合前边梳理的场景2
    在这里插入图片描述

    1.首先在pom文件中net.sf.json的引用处排除对commons-beanutils的间接引用

    在这里插入图片描述

    2.单独直接引用commons-beanutils漏洞外的版本

    在这里插入图片描述

    3.刷新maven项目,重新查看依赖树,只检索到了我们单独引用的commons-beanutils的1.9.4版本

    在这里插入图片描述

结语

以上就是楼主在实际开发中遇到的漏洞排查修复过程,希望可以帮到你~

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!对于Spring Boot和Maven项目,我可以为您提供一些基本信息。Spring Boot是一个用于创建独立的、基于Spring框架的Java应用程序的框架。Maven是一个项目管理工具,用于构建、部署和管理Java项目。 要创建一个Spring Boot Maven项目,您可以按照以下步骤进行操作: 1. 首先,确保您安装了JavaMaven。您可以从官方网站下载并按照说明安装它们。 2. 打开命令行终端或IDE(例如Eclipse、IntelliJ IDEA等)。 3. 使用Maven的`archetype`命令创建一个新的Spring Boot项目。您可以运行以下命令: ``` mvn archetype:generate -DgroupId=com.example -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false ``` 这将创建一个名为"demo"的项目,其中包含基本的Maven目录结构和文件。 4. 进入新创建的项目目录:`cd demo` 5. 打开`pom.xml`文件,并添加Spring Boot相关的依赖项。您可以根据您的需求添加不同的依赖项,例如Spring Boot Web、Spring Data JPA等。这些依赖项可以在Spring官方文档中找到。 6. 创建一个`Main`类作为您的应用程序的入口点。该类应该位于`src/main/java/com/example/demo`目录下。您可以在该类中添加`@SpringBootApplication`注解来启用Spring Boot的自动配置。 7. 开始开发您的Spring Boot应用程序!您可以创建控制器、服务、实体等。 8. 构建和运行项目。在命令行终端中,使用以下命令构建项目:`mvn clean install`,然后使用`java -jar target/demo.jar`命令运行项目。 这只是一个简单的示例,希望对您有所帮助!如果您有任何进一步的问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值