当前位置: 首页 > 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 注解来编写。 帮助网安学习全套资料S信免费领取 ① 网安学习成长路径思维导图 ② 60网安经典常用工具包 ③ 100SRC分析报告 ④ 150网安攻防实战技术电子书 ⑤ 最权威CISSP 认证考试指南题库 ⑥ 超1800页CTF实战技巧手册 ⑦ 最新网安大厂面试题合集含答案 ⑧ APP客户端安全检测指南安卓IOS 生产者可以使用 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 头加黑了
http://www.zqtcl.cn/news/177037/

相关文章:

  • 微信微网站开发价格广西做网站的公司有哪些
  • 做网站内容哪家公司可以做网站
  • 网站后台数据库管理经常浏览不良网站会被记录吗
  • 做加工都在哪个网站推广网络营销外包推广
  • 做英文网站怎么赚钱经典logo设计案例分析
  • 大型建站公司是干嘛的wordpress激活码充值
  • 带后台网站模板wordpress注册模板
  • 济南城乡住房建设厅网站dedecms企业网站
  • 旅游网站怎么做才能被关注园林景观设计公司名字
  • 建站之星网站建设系统事业单位网站登录模板
  • 如何做京东优惠券网站建设银行网站储蓄账户查询密码
  • 月付购物网站建站方维网络科技有限公司
  • 广东外贸网站建设企业手写代码网站
  • 信誉好的菏泽网站建设自己做网站一定要实名吗
  • 头像网站模板长春建工集团官网
  • 微信网站建设费用网站建设评价标准
  • 济宁市建设工程招投标网站购物网站建设图标大全
  • 婚恋网站制作网站建设服务案例
  • 学校 网站建设 报销discuz做网站赚钱经历
  • 上海做高端网站制小吃加盟招商方案
  • 焦作市建设工程网站网站开发遵循的原则
  • 网站搜索引擎优化主要方法分子信标探针在线设计网站
  • 湘潭做网站 定制磐石网络建设规划许可证公示网站
  • seo查询 站长工具热门行业
  • 广州网站设计与制作公司windows优化大师官方下载
  • 找公司做网站要注意什么网站优化方法页面
  • 贵州省都匀市网站建设it培训机构培训排名
  • 网站开发的技术栈网页设计1920尺寸
  • 在中国可以做国外的域名网站吗中国建设银行人力资源网站
  • 中石化第四建设公司 网站电商app开发价格表