当前位置: 首页 > news >正文

十堰做网站最好的公司公司宣传片制作

十堰做网站最好的公司,公司宣传片制作,wordpress 亩,泰州网站建设 思创漏洞描述 Spring Kafka 是 Spring Framework 生态系统中的一个模块#xff0c;用于简化在 Spring 应用程序中集成 Apache Kafka 的过程#xff0c;记录 (record) 指 Kafka 消息中的一条记录。 受影响版本中默认未对记录配置 ErrorHandlingDeserializer#xff0c;当用户将容… 漏洞描述 Spring Kafka 是 Spring Framework 生态系统中的一个模块用于简化在 Spring 应用程序中集成 Apache Kafka 的过程记录 (record) 指 Kafka 消息中的一条记录。 受影响版本中默认未对记录配置 ErrorHandlingDeserializer当用户将容器属性 checkDeserExWhenKeyNull 或 checkDeserExWhenValueNull 设置为 true(默认为 false)并且允许不受信任的源发布到 Kafka 主题中时攻击者可将恶意 payload 注入到 Kafka 主题中当反序列化记录头时远程执行任意代码。 影响版本 2.8.1 Spring-Kafka 2.9.10 3.0.0 Spring-Kafka 3.0.9 漏洞复现 这一个漏洞所影响的组件其实是 Spring-Kafka严格意义上来说并不算是 kafka 的漏洞应该算是 Spring 的漏洞。 漏洞前置知识 先来看一看 SpringBoot 和 Kafka 是怎么完成通讯/消费的 工作流程如下 1、生产者将消息发送到 Kafka 集群中的某个 Broker也可以是多个 2、Kafka 集群将消息存储在一个或多个分区中并为每个分区维护一个偏移量 3、消费者订阅一个或多个主题并从 Kafka 集群中读取消息。4、消费者按顺序读取每个分区中的消息并跟踪每个分区的偏移量。 • ErrorHandlingDeserializer是 Kafka中的一种反序列化器Deserializer它可以在反序列化过程中处理异常和错误。• checkDeserExWhenKeyNull checkDeserExWhenValueNull是 Kafka 中的一种序列化器Serializer它可以在序列化过程中检查键key/value是否为 null并在发现值为 null 时抛出异常。 再简单整理一下漏洞条件 在受到影响的版本中默认未对记录配置 ErrorHandlingDeserializer 容器属性 checkDeserExWhenKeyNull 或 checkDeserExWhenValueNull 设置为 true 环境搭建 其中需要我们起一个 Kafka 的服务用来接收消息本机上起比较麻烦可以在 vps 上用 docker 迅速搭建且需注意Kafka 要能够接受外连docker-compose.yml 如下 version: 2services:zookeeper:image: zookeeperrestart: alwaysports:- 2181:2181container_name: zookeeperkafka:image: wurstmeister/kafkarestart: alwaysports:- 9092:9092- 9094:9094depends_on:- zookeeperenvironment:KAFKA_ADVERTISED_HOST_NAME: 124.222.21.138KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,SSL://0.0.0.0:9094KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://124.222.21.138:9092,SSL://124.222.21.138:9094KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,SSL:SSLKAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXTcontainer_name: kafka Spring Kafka 的生产者和消费者可以通过使用 Spring Kafka 提供的 KafkaTemplate 和 KafkaListener 注解来编写。 生产者可以使用 KafkaTemplate 来发送消息到 Kafka 集群 package com.drunkbaby.springkafkatest.controller;  import com.drunkbaby.springkafkatest.common.KafkaInfo;   import org.springframework.beans.factory.annotation.Autowired;   import org.springframework.kafka.core.KafkaTemplate;   import org.springframework.kafka.support.SendResult;   import org.springframework.util.concurrent.ListenableFuture;   import org.springframework.web.bind.annotation.PostMapping;   import org.springframework.web.bind.annotation.RequestMapping;   import org.springframework.web.bind.annotation.RestController;  import java.time.LocalDateTime;   import java.util.concurrent.ExecutionException;  RestController   RequestMapping(/producer)   public class ProducerController {  Autowired  private KafkaTemplateString,String kafkaTemplate;  PostMapping(/fireAndForget)  public String fireAndForget() {  kafkaTemplate.send(KafkaInfo.TOPIC_WELCOME, fireAndForget:  LocalDateTime.now());  return success;  }   } 消费者可以使用 KafkaListener 注解来监听 Kafka 集群中的消息 package com.drunkbaby.springkafkatest.consumer;  import com.drunkbaby.springkafkatest.common.KafkaInfo;   import org.springframework.kafka.annotation.KafkaListener;   import org.springframework.messaging.MessageHeaders;   import org.springframework.messaging.handler.annotation.Headers;   import org.springframework.messaging.handler.annotation.Payload;   import org.springframework.stereotype.Component;  Component   public class Consumer {  KafkaListener(topics  KafkaInfo.TOPIC_WELCOME)  public String consumer2(Payload String message, Headers MessageHeaders headers) {  System.out.println(消费者(注解方式)收到消息 );  System.out.println(  message  message);  System.out.println(  headers:);  headers.keySet().forEach(key - System.out.println(      key  :  headers.get(key)));  return success;  } 连接成功 访问 http://localhost:8083/producer/sync 发送一条记录 构造 payload 实际影响到的是 Consumer且 Consumer 要设置 checkDeserExWhenKeyNull 或 checkDeserExWhenValueNull 为 true ConcurrentKafkaListenerContainerFactoryString, Greeting factory  new ConcurrentKafkaListenerContainerFactory();   factory.getContainerProperties().setCheckDeserExWhenValueNull(true);   factory.getContainerProperties().setCheckDeserExWhenKeyNull(true); payload 参考 https://github.com/Contrast-Security-OSS/Spring-Kafka-POC-CVE-2023-34040 漏洞分析 主要是来看反序列化的部分 断点会先走到 org.springframework.kafka.listener.ListenerUtils#getExceptionFromHeader 方法它这里面会获取到 PoC 中的 KEY_DESERIALIZER_EXCEPTION_HEADER并将其作为 headers 往下跟进 byteArrayToDeserializationException() 方法这里就直接到反序列化的部分了而在反序列化之前做了一次 resolveClass() 的校验。 而这里的 resolveClass() 校验是一次性的这就代表我们可以构造其他的 Payload如 CC 链等证实是可以打通的 之后便会进入到对应类的 readObject() 方法 漏洞修复 https://github.com/spring-projects/spring-kafka/commit/25ac793a78725e2ca4a3a2888a1506a4bfcf0c9d 相当于把这里的 header 头加黑了 原创稿件征集 征集原创技术文章中欢迎投递 投稿邮箱eduantvsion.com 文章类型黑客极客技术、信息安全热点安全研究分析等安全相关 通过审核并发布能收获200-800元不等的稿酬。 更多详情点我查看 靶场实操体验戳“阅读原文”
http://www.hkea.cn/news/14310793/

相关文章:

  • 打开有些网站显示建设中网站网页怎么设计
  • 网站开发公司兴田德润在那里发帖平台
  • 河北雄安新区规划建设局网站怎样注册商标申请
  • 营销型网站重要性市场监督管理局电话举报电话
  • 工人找工作哪个网站好网上注册一个公司需要多少钱
  • 北京当地网站 点广州建设公司网站
  • 哪个网站可以做平面兼职wordpress的站点地址和
  • 原型样网站福州科技网站建设怎么做
  • 苏州公司建设网站wordpress 指定分类
  • 百度上做网站免费吗友情链接代码wordpress
  • 网站建设kaituozu开封网站建设价格
  • 域名和网站关联暴雪代理最新消息
  • 石家庄哪里有网站建设轻食网络推广方案
  • 课程分销的网站怎么做科技厅
  • 做网站销售电销好做吗北京网站优化seo
  • 长春网站推广常州网站制作czyzj
  • 凡科轻站链爱交易平台
  • 郴州网站建设公司哪个好html网站自带字体怎么做
  • 网站建设从哪几个情况去判天元建设集团有限公司六大板块
  • 深圳网站建设799元起全包域名重庆做手机网站建设
  • 如何编写网站建设公司简介模板及介绍
  • 保定网站建设制作开发平台电商平台寻求供货商
  • 网站布局设计软件营销必备十大软件
  • 杭州网站建设的企业沈阳视频制作公司
  • 在哪能学到网站建设工商企业登记查询
  • html网站设计模板哪里有网站建设中心
  • 建立网站怎么赚钱北京顺义去哪找做网站的
  • 品牌网站建设费用网站开发 .net
  • 简单php企业网站源码dw简易网站怎么做
  • 杭州网站建设价格企业管理咨询管理公司在哪