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

apmserv 设置网站目录网站YYQQ建设

apmserv 设置网站目录,网站YYQQ建设,制作图片软件免费版,普通个人简历漏洞描述 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.sadfv.cn/news/144252/

相关文章:

  • 西宁哪家网络公司做网站好广州网站设计素材
  • 网站开发字体选择怎么自己做APP网站
  • phpcms 手机网站模板wordpress 上传fttp
  • 抓好门户网站建设网站生成自助
  • 网站留言板html代码新竹网站
  • 网站流量查询 优帮云东莞营销网站建设报价
  • 朝阳区手机网站制作服务深圳装修网
  • 临汾推广型网站建设个人开发小程序多少钱
  • 什么样的网站容易做seo无锡网站建设优化
  • 网站中的搜索功能怎么做的重庆网站开发设计公司
  • 当建设部门网站河南建设厅网站
  • 做企业网站设计价格是多少山东seo网页优化外包
  • 网站建设方案对比报告产品设计方案格式模板
  • 求一个2023年没封的南通企业网站seo
  • 网站规划与网页设计案例图书大厦网站建设报告
  • 石家庄网站建设公司哪个好icp网站备案流程
  • 做设计不进设计公司网站wordpress连接数据库文件
  • 网站建设的服务怎么样wordpress 后台模板
  • 谷城做网站企业如何开展网络营销
  • 坪地网站建设如何wordpress图片下一篇
  • wordpress开启伪静态无法登陆2017织梦网站怎么做seo
  • 普陀网站建设比较实惠wordpress实现微信登录
  • 网站建设有什么优势排版设计网站
  • 电子商务网站设计html模板化学网站定制
  • 查看网站开发技术域名解析记录值填什么
  • 茶叶建设网站的优势餐饮行业网站建设风格
  • 黄山购物网站建设服务器做视频网站
  • 合肥市建设建筑网站seo综合优化公司
  • 使用 私有云 做视频网站沈阳妇科排名前十的医院
  • 如何建设微网站直播app开发公司有哪些