国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Spring boot使用Kafka Java反序列化漏洞 CVE-2023-34040

這篇具有很好參考價(jià)值的文章主要介紹了Spring boot使用Kafka Java反序列化漏洞 CVE-2023-34040。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


Spring boot使用Kafka Java反序列化漏洞 CVE-2023-34040,# Spring Framework 漏洞解決,# Spring Boot 知識(shí)集錦,java,spring,kafka

0.前言

背景:公司項(xiàng)目掃描到 Spring-Kafka上使用通配符模式匹配進(jìn)行的安全繞過漏洞 CVE-2023-20873

漏洞

中等風(fēng)險(xiǎn) | 2023年8月23日 | CVE-2023-34040

在Spring for Apache Kafka 3.0.9及更早版本以及2.9.10及更早版本中,存在可能的反序列化攻擊向量,但只有在應(yīng)用了不常見的配置時(shí)才會(huì)出現(xiàn)。攻擊者必須在反序列化異常記錄頭中構(gòu)造一個(gè)惡意序列化對(duì)象。

spring-kafka 介紹

Spring Kafka 是 Spring 框架提供的一個(gè)庫(kù),它提供了使用 Apache Kafka 的便捷方式。Apache Kafka 是一個(gè)開源的流處理平臺(tái),主要用于構(gòu)建實(shí)時(shí)數(shù)據(jù)流管道和應(yīng)用。Spring Kafka 通過提供一種抽象和封裝的方法,使開發(fā)者能夠更容易地在 Spring 框架中使用 Apache Kafka。它大大簡(jiǎn)化了在 Spring 框架中使用 Apache Kafka 的復(fù)雜性,使得開發(fā)者可以更專注于業(yè)務(wù)邏輯的開發(fā)。

  1. 簡(jiǎn)化的 Kafka 生產(chǎn)者和消費(fèi)者配置:Spring Kafka 提供了一套簡(jiǎn)單的方法來(lái)配置 Kafka 生產(chǎn)者和消費(fèi)者。它提供了與 Spring Boot 的集成,使得配置更加簡(jiǎn)單。

  2. 異常處理:Spring Kafka 提供了一套機(jī)制來(lái)處理生產(chǎn)者和消費(fèi)者在使用過程中遇到的異常,包括發(fā)送消息失敗、消息格式錯(cuò)誤等異常。

  3. 消息轉(zhuǎn)換:Spring Kafka 提供了一套機(jī)制來(lái)轉(zhuǎn)換 Kafka 消息,使得可以使用喜歡的數(shù)據(jù)格式(如 JSON、Avro 等)來(lái)發(fā)送和接收 Kafka 消息。

  4. 事務(wù)支持:Spring Kafka 提供了對(duì) Kafka 事務(wù)的支持,使得可以在一個(gè)事務(wù)中發(fā)送多個(gè) Kafka 消息。

  5. 帶有回調(diào)的消息發(fā)送:Spring Kafka 提供了一種方法,可以在消息發(fā)送后獲取到發(fā)送結(jié)果的回調(diào),以便于進(jìn)行進(jìn)一步的處理。

1.參考文檔

CVE 官方網(wǎng)站 https://www.cve.org/CVERecord?id=CVE-2023-34040
spring官方網(wǎng)站 https://spring.io/security/cve-2023-34040
Spring boot使用Kafka Java反序列化漏洞 CVE-2023-34040,# Spring Framework 漏洞解決,# Spring Boot 知識(shí)集錦,java,spring,kafka

2.基礎(chǔ)介紹

CVE-2023-34040:當(dāng)配置不當(dāng)時(shí),Spring-Kafka中的Java反序列化漏洞
中等風(fēng)險(xiǎn) | 2023年8月23日 | CVE-2023-34040
描述
在Spring for Apache Kafka 3.0.9及更早版本以及2.9.10及更早版本中,存在可能的反序列化攻擊向量,但只有在應(yīng)用了不常見的配置時(shí)才會(huì)出現(xiàn)。攻擊者必須在反序列化異常記錄頭中構(gòu)造一個(gè)惡意序列化對(duì)象。

具體來(lái)說,當(dāng)滿足以下所有條件時(shí),應(yīng)用程序才會(huì)變得脆弱:

用戶未為記錄的鍵和/或值配置ErrorHandlingDeserializer
用戶明確地將容器屬性checkDeserExWhenKeyNull和/或checkDeserExWhenValueNull設(shè)置為true。
用戶允許不受信任的源發(fā)布到Kafka主題
默認(rèn)情況下,這些屬性為false,且只有在配置了ErrorHandlingDeserializer時(shí),容器才會(huì)嘗試反序列化這些頭。ErrorHandlingDeserializer通過在處理記錄之前移除所有此類惡意頭,阻止了此漏洞的發(fā)生。

受影響的Spring產(chǎn)品和版本
Spring for Apache Kafka
2.8.1至2.9.10
3.0.0至3.0.9

3.解決方案

3.1. 升級(jí)版本

  • 2.8.x和2.9.x的用戶應(yīng)升級(jí)到2.9.11
  • 3.0.x的用戶應(yīng)升級(jí)到3.0.10
  • 已修復(fù)此問題的版本包括:

Spring for Apache Kafka
3.0.10
2.9.11 Spring boot 3.0.10(或更高)依賴管理將自動(dòng)使用Spring for Apache Kafka 3.0.10(或更高)。Spring Boot 2.7.x用戶應(yīng)將Boot的Spring for Apache Kafka 2.8.x依賴管理版本覆蓋為2.9.11(或更高)。

3.2. 替代方案

在不使用ErrorHandlingDeserializers時(shí),不要設(shè)置容器屬性checkDeserExWhenKeyNull或checkDeserExWhenValueNull,或者使用ErrorHandlingDeserializers

4.Spring kafka 使用教程代碼示例

pom.xml 文件中添加 Spring Kafka 的依賴:

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka</artifactId>
</dependency>

在application.properties文件中設(shè)置Kafka的配置:

spring.kafka.bootstrap-servers=localhost:9092
spring.kafka.consumer.group-id=myGroup
spring.kafka.template.default-topic=myTopic

創(chuàng)建一個(gè)消息生產(chǎn)者:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.stereotype.Service;

@Service
public class KafkaProducer {

    @Autowired
    private KafkaTemplate<String, String> kafkaTemplate;

    public void sendMessage(String message) {
        kafkaTemplate.sendDefault(message);
    }
}

創(chuàng)建一個(gè)消息消費(fèi)者:

import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Service;

@Service
public class KafkaConsumer {

    @KafkaListener(topics = "myTopic", groupId = "myGroup")
    public void listen(String message) {
        System.out.println("Received message: " + message);
    }
}

可以通過創(chuàng)建一個(gè)簡(jiǎn)單的REST API來(lái)測(cè)試消息的發(fā)送和接收:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "/kafka")
public class KafkaController {

    @Autowired
    private KafkaProducer producer;

    @PostMapping(value = "/publish")
    public void sendMessageToKafka(@RequestBody String message) {
        this.producer.sendMessage(message);
    }
}

這個(gè)API接收一個(gè)POST請(qǐng)求,并將請(qǐng)求體中的消息發(fā)送到Kafka。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-730366.html

到了這里,關(guān)于Spring boot使用Kafka Java反序列化漏洞 CVE-2023-34040的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Kafka反序列化RCE漏洞(CVE-2023-34040)

    Spring Kafka 是 Spring Framework 生態(tài)系統(tǒng)中的一個(gè)模塊,用于簡(jiǎn)化在 Spring 應(yīng)用程序中集成 Apache Kafka 的過程,記錄 (record) 指 Kafka 消息中的一條記錄。 受影響版本中默認(rèn)未對(duì)記錄配置? ErrorHandlingDeserializer ,當(dāng)用戶將容器屬性? checkDeserExWhenKeyNull ?或? checkDeserExWhenValueNull ?設(shè)置為

    2024年02月06日
    瀏覽(32)
  • 【精選】PHP&java 序列化和反序列化漏洞

    目錄 首先 其次 技巧和方法

    2024年01月23日
    瀏覽(21)
  • 反序列化滲透與攻防(二)之Java反序列化漏洞

    JAVA反序列化漏洞到底是如何產(chǎn)生的? 1、由于很多站點(diǎn)或者RMI倉(cāng)庫(kù)等接口處存在java的反序列化功能,于是攻擊者可以通過構(gòu)造特定的惡意對(duì)象序列化后的流,讓目標(biāo)反序列化,從而達(dá)到自己的惡意預(yù)期行為,包括命令執(zhí)行,甚至 getshell 等等。 2、Apache Commons Collections是開源小

    2023年04月17日
    瀏覽(24)
  • java反序列化漏洞分析

    Java反序列化漏洞(Java Deserialization Vulnerabilities)是一種常見的安全漏洞,其攻擊方式是利用Java中的序列化和反序列化機(jī)制,通過在序列化數(shù)據(jù)中插入惡意代碼,導(dǎo)致反序列化過程中執(zhí)行惡意代碼。本文將介紹Java反序列化漏洞的原理、攻擊方式和防范措施。 一、Java序列化和

    2024年02月13日
    瀏覽(42)
  • Web安全--反序列化漏洞(java篇)

    Web安全--反序列化漏洞(java篇)

    序列化的意義就在于方便存儲(chǔ)和傳輸,永久的保存到硬盤中,通常保存在一個(gè)文件中。 序列化:將java對(duì)象轉(zhuǎn)換為字節(jié)序列的過程 反序列化:序列化的逆過程,從儲(chǔ)存區(qū)讀出字節(jié)序列還原成對(duì)象的過程 java應(yīng)用在對(duì)用戶的輸入沒有進(jìn)行嚴(yán)格的檢查時(shí),即傳入了不可信的數(shù)據(jù)做

    2024年02月09日
    瀏覽(30)
  • Java反序列化漏洞-URLDNS鏈分析

    Java反序列化漏洞-URLDNS鏈分析

    目錄 一、前置知識(shí) 反射 二、分析 1. URL 2. HashMap 3. 解決一些問題 反射修改字段值 三、POC 四、利用鏈 菜鳥教程 Java 序列化 Java安全-反射 URLDNS鏈的作用就是在目標(biāo)主機(jī)中可能存在反序列化輸入的數(shù)據(jù)的地方,傳入序列化后的URLDNS利用鏈,如果目標(biāo)主機(jī)解析了這個(gè)URL地址,那么

    2024年02月04日
    瀏覽(23)
  • 【java安全】FastJson反序列化漏洞淺析

    【java安全】FastJson反序列化漏洞淺析

    0x00.前言 前面我們學(xué)習(xí)了RMI和JNDI知識(shí),接下來(lái)我們就可以來(lái)了解一下FastJson反序列化了 0x01.FastJson概述 FastJson是阿里巴巴的開源JSON解析庫(kù),它可以解析JSON格式的字符串,支持 將JavaBean序列化為JSON字符串,也可以將JSON字符串反序列化到JavaBean 0x02.FastJson使用 首先我們需要使用

    2024年02月11日
    瀏覽(33)
  • Java安全研究——反序列化漏洞之CC鏈

    Java安全研究——反序列化漏洞之CC鏈

    apache?commons-collections組件下的反序列化漏洞,自從該組件被爆出漏洞后,許多安全研究員相繼挖掘到j(luò)ava多種組件的漏洞,危害嚴(yán)重。本人也是初學(xué)Java審計(jì)不久,技術(shù)薄弱,所以在此做一個(gè)cc鏈的學(xué)習(xí)總結(jié),如有錯(cuò)誤還請(qǐng)大佬指出。 若本文有侵權(quán)行為,請(qǐng)立即私信,將全面修

    2024年02月04日
    瀏覽(29)
  • Java反序列化漏洞-CC1利用鏈分析

    Java反序列化漏洞-CC1利用鏈分析

    目錄 一、前置知識(shí) 1. 反射 2. Commons Collections是什么 3. 環(huán)境準(zhǔn)備 二、分析利用鏈 1. Transformer 2. InvokeTransformer 執(zhí)行命令 3. ConstantTransformer 4. ChainedTransformer 執(zhí)行命令 5. TransformedMap 6. AbstractInputCheckedMapDecorator 7. AnnotationInvocationHandler 三、編寫POC 1. ChainedTransformer 2. decorate 3. Annotatio

    2024年02月04日
    瀏覽(19)
  • 38-WEB漏洞-反序列化之PHP&JAVA全解(下)

    38-WEB漏洞-反序列化之PHP&JAVA全解(下)

    序列化(Serialization):將對(duì)象的狀態(tài)信息轉(zhuǎn)換為可以存儲(chǔ)或傳輸?shù)男问降倪^程。在序列化期間,對(duì)象將其當(dāng)前狀態(tài)寫入到臨時(shí)或持久性存儲(chǔ)區(qū)。 反序列化:從存儲(chǔ)區(qū)中讀取該數(shù)據(jù),并將其還原為對(duì)象的過程,成為反序列化。 1、主函數(shù): 調(diào)用序列化方法 將反序列化的的結(jié)果

    2024年01月25日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包