欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring?Boot存在路徑遍歷漏洞CVE-2021-22118的問題解析

 更新時間:2023年09月01日 15:02:40   作者:冰點(diǎn).  
CVE-2021-22118?是一個在?Spring?Boot?中發(fā)現(xiàn)的漏洞,該漏洞關(guān)系到?Spring?Boot?的開發(fā)者工具(Devtools)中的遠(yuǎn)程更新(Remote?Update)功能,這篇文章主要介紹了Spring?Boot存在路徑遍歷漏洞CVE-2021-22118,需要的朋友可以參考下

在這里插入圖片描述

0.前言

背景:Spring Boot存在路徑遍歷漏洞。CVE-2021-22118:

在這里插入圖片描述

官方 issue也有對此的記錄,感興趣可以看下

https://github.com/spring-projects/spring-boot/issues/26627

https://github.com/spring-projects/spring-boot/issues/27543

CVE-2021-22118 是一個在 Spring Boot 中發(fā)現(xiàn)的漏洞。該漏洞關(guān)系到 Spring Boot 的開發(fā)者工具(Devtools)中的遠(yuǎn)程更新(Remote Update)功能。在某些情況下,攻擊者可能會利用這個功能進(jìn)行目錄遍歷攻擊,從而訪問到系統(tǒng)中的敏感文件。

需要注意的是,這個漏洞只會影響到使用了 Spring Boot Devtools 的基于文件系統(tǒng)的應(yīng)用,而且應(yīng)用還必須滿足以下兩個條件之一:

  • 遠(yuǎn)程更新功能被開啟(spring.devtools.restart.enabled = true)。
  • 應(yīng)用使用了默認(rèn)的 HTTP 更新 URL(spring.devtools.restart.remote-secret)。

如果你的應(yīng)用滿足以上條件,建議盡快進(jìn)行修復(fù)。修復(fù)這個漏洞的方法有以下幾種:

  • 將 Spring Boot 升級到 2.3.10.RELEASE 或更高版本。
  • 將 Spring Boot 升級到 2.4.5 或更高版本。
  • 將 Spring Boot 升級到 2.5.0 或更高版本。

關(guān)于這個漏洞的詳細(xì)信息,可以參考 Spring 官方的安全通告。
請注意,對于已經(jīng)在生產(chǎn)環(huán)境中運(yùn)行的應(yīng)用,修改CORS配置可能會影響到正常的功能。因此,在實(shí)施這個修復(fù)之前,應(yīng)該先進(jìn)行充分的測試。

1.參考文檔

CVE 官方網(wǎng)站 https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-22118

2.基礎(chǔ)介紹

CVE-2021-22118是在Spring Boot中發(fā)現(xiàn)的一個嚴(yán)重的路徑遍歷漏洞。這個漏洞使攻擊者能夠以應(yīng)用程序的身份訪問計算機(jī)的敏感文件和數(shù)據(jù)。

1. 影響的版本

這個漏洞影響了Spring Boot 2.3.02.3.72.4.0至`2.4.3以及2.5.0版本。

2. 漏洞利用原理:

漏洞源于Spring Boot在處理用戶輸入的URL時,未能正確處理“…/”這種可能引起路徑遍歷的模式。在Spring Boot應(yīng)用程序配置了Spring MVC并使用了默認(rèn)的資源處理時,攻擊者可以通過精心構(gòu)造的URL,訪問到應(yīng)用程序類路徑上的文件。這就使得攻擊者有可能通過這個漏洞訪問和下載敏感文件,或者執(zhí)行非法操作。

官方的修復(fù)方式是發(fā)布了新的版本,即Spring Boot 2.3.8、2.4.42.5.1。在這些版本中,官方對路徑遍歷的處理進(jìn)行了改進(jìn)。

具體來說,Spring Boot在處理用戶請求的URL時,加強(qiáng)了對“…/”這種可能引起路徑遍歷的模式的處理。當(dāng)應(yīng)用程序檢測到請求的URL包含這種模式時,會進(jìn)行更嚴(yán)格的校驗(yàn),以防止攻擊者利用這種模式來訪問應(yīng)用程序類路徑之外的文件或目錄。

為了修復(fù)這個問題,受影響的用戶應(yīng)盡快將其Spring Boot版本升級到官方發(fā)布的新版本。實(shí)際上,這也是對待任何軟件漏洞的通用策略:一旦發(fā)現(xiàn)有漏洞存在,就應(yīng)該盡快升級到最新的、已修復(fù)該漏洞的版本。

3.解決方案

3.1. 方案1

Spring在其2.3.82.4.42.5.1版本中修復(fù)了這個漏洞。對于受到影響的用戶,推薦盡快升級到這些版本。同時,作為臨時措施,可以限制用戶能訪問的URL,或者在服務(wù)器端增加對用戶提交的URL進(jìn)行更嚴(yán)格的校驗(yàn)。

3.2. 方案2

臨時解決方案
在Nginx中,你可以使用location指令和rewrite指令來攔截和阻止包含"…/"的請求,以下是一個基本的示例配置:

server {
    listen 80;
    server_name your_domain.com;
    location / {
        if ($request_uri ~* "\.\.\/") {
            return 403;
        }
        proxy_pass http://your_upstream;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

這個配置會監(jiān)聽80端口,并將請求代理到http://your_upstream,如果請求的URI中包含"…/“,Nginx會返回403狀態(tài)碼,即"禁止訪問”。

這只是防止路徑遍歷攻擊的一種方法,并不能完全保證安全。因此,升級到?jīng)]有這個漏洞的Spring
Boot版本,仍然是最安全的解決方案。此外,你還應(yīng)該定期更新Nginx版本,以應(yīng)用最新的安全修復(fù)。

3.3. 方案3

在Spring Boot中你可以通過定制一個攔截器來防止路徑遍歷攻擊。攔截器可以在處理請求前對請求的URL進(jìn)行檢查,如果URL包含非法字符(如"…/“或”./"),則可以拒絕該請求。== 這種可能會誤攔截,大家使用的時候注意充分測試和考慮各種渠道==
一個簡單示例可供參考

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class PathTraversalInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String uri = request.getRequestURI();
        if (uri.contains("../") || uri.contains("./")) {
            response.sendError(HttpServletResponse.SC_BAD_REQUEST);
            return false;
        }
        return true;
    }
}

需要在一個配置類中將這個攔截器注冊到Spring的攔截器鏈中:

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
    private final PathTraversalInterceptor pathTraversalInterceptor;
    public WebConfig(PathTraversalInterceptor pathTraversalInterceptor) {
        this.pathTraversalInterceptor = pathTraversalInterceptor;
    }
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(pathTraversalInterceptor);
    }
}

這樣,Spring將會在處理每個請求前,先執(zhí)行PathTraversalInterceptorpreHandle方法來檢查請求的URL。

這種方法 也只能作為臨時的解決方案,它不能替代升級SpringBoot到?jīng)]有該漏洞的版本。因?yàn)楣粽呖赡軙褂镁幋a繞過你的檢查,而升級Spring Boot可以徹底修復(fù)該漏洞。

到此這篇關(guān)于Spring Boot存在路徑遍歷漏洞CVE-2021-22118的文章就介紹到這了,更多相關(guān)Spring Boot漏洞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springmvc整合ssm配置的詳細(xì)代碼

    springmvc整合ssm配置的詳細(xì)代碼

    今天通過實(shí)例代碼給大家介紹了springmvc整合ssm配置的詳細(xì)方法,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-11-11
  • Java for循環(huán)常見優(yōu)化方法案例詳解

    Java for循環(huán)常見優(yōu)化方法案例詳解

    這篇文章主要介紹了Java for循環(huán)常見優(yōu)化方法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 用IDEA如何打開文件夾

    用IDEA如何打開文件夾

    這篇文章主要介紹了用IDEA如何打開文件夾問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 多模字符串匹配算法原理及Java實(shí)現(xiàn)代碼

    多模字符串匹配算法原理及Java實(shí)現(xiàn)代碼

    這篇文章主要介紹了多模字符串匹配算法原理及Java實(shí)現(xiàn)代碼,涉及算法背景,原理,構(gòu)建過程簡單介紹幾Java代碼實(shí)現(xiàn)等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java中用POI實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到Excel

    Java中用POI實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到Excel

    這篇文章主要介紹了Java中用POI實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到Excel,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • java項目中常用指標(biāo)UV?PV?QPS?TPS含義以及統(tǒng)計方法

    java項目中常用指標(biāo)UV?PV?QPS?TPS含義以及統(tǒng)計方法

    文章介紹了現(xiàn)代Web應(yīng)用中性能監(jiān)控和分析的重要性,涵蓋了UV、PV、QPS、TPS等關(guān)鍵指標(biāo)的統(tǒng)計方法,并提供了示例代碼,同時,文章還討論了性能優(yōu)化和瓶頸分析的策略,以及使用Grafana等可視化工具進(jìn)行監(jiān)控與告警的重要性
    2025-01-01
  • 入門到精通Java?SSO單點(diǎn)登錄原理詳解

    入門到精通Java?SSO單點(diǎn)登錄原理詳解

    這篇文章主要介紹了入門到精通Java?SSO單點(diǎn)登錄原理詳解,本文主要對SSO單點(diǎn)登錄與CAS、OAuth2.0兩種授權(quán)協(xié)議的關(guān)系和原理進(jìn)行詳細(xì)說明
    2022-09-09
  • Spring?Cloud?Gateway?2.x跨域時出現(xiàn)重復(fù)Origin的BUG問題

    Spring?Cloud?Gateway?2.x跨域時出現(xiàn)重復(fù)Origin的BUG問題

    這篇文章主要介紹了Spring?Cloud?Gateway?2.x跨域時出現(xiàn)重復(fù)Origin的BUG問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Spring使用@Filter注解創(chuàng)建自定義過濾器

    Spring使用@Filter注解創(chuàng)建自定義過濾器

    Spring 中鮮為人知但非常有用的注解之一是 @Filter,它支持自定義過濾器,下面我們就來深入研究一下如何使用 Spring 的 @Filter 注解來創(chuàng)建自定義過濾器吧
    2023-11-11
  • Java設(shè)計模式常用的七大原則總結(jié)

    Java設(shè)計模式常用的七大原則總結(jié)

    今天給大家總結(jié)了Java設(shè)計模式的七大原則,主要有單一職責(zé)原則,接口隔離原則,依賴倒轉(zhuǎn)原則,里氏替換原則等,文中有非常詳細(xì)的介紹,需要的朋友可以參考下
    2021-06-06

最新評論