#渗出测试#漏洞发掘#红蓝攻防#漏洞发掘#未授权漏洞-Spring Eureka 未授权访 ...

打印 上一主题 下一主题

主题 1045|帖子 1045|积分 3135

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明 本教程仅为正当的教学目的而准备,严禁用于任何形式的违法犯罪运动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表现您需自行承担全部操纵的后果,如有异议,请立刻停止本文章读。

目次
一、什么是Spring Eureka?
一、Spring Eureka简介
二、Spring Eureka的背景
三、Eureka框架体系
四、Eureka的工作机制
五、Spring Cloud Eureka与Eureka的区别
六、Eureka与Zookeeper的对比(设计思绪方面)
二、Spring Eureka存在的漏洞
一. XStream反序列化漏洞
二、. 未授权访问漏洞
三. RCE漏洞
四. SpEL表达式注入漏洞
三、Spring Eureka未授权访问漏洞
一、漏洞使用步调
二、防护措施
三、示例代码
四、Eureka未授权访问风险评估方法
一、风险评估
二、风险评估步调
三、风险评估陈诉
五、Eureka渗出测试案例分析
一、案例背景
二、渗出测试过程
三、案例分析

   一、什么是Spring Eureka?

  一、Spring Eureka简介

  Spring Eureka是Spring Cloud框架中的一个核心组件,主要用于实现微服务之间的服务发现和服务治理功能。
  二、Spring Eureka的背景

  

  • Spring Cloud的概念

    • Spring Cloud是一系列框架的有序集合。它使用Spring Boot的开发便利性巧妙地简化了分布式系统基础办法的开发,如服务发现注册、设置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和摆设。Spring Cloud整合了各家公司开发的比力成熟、经得起现实考验的服务框架,通过Spring Boot风格进行再封装,屏蔽掉复杂的设置和实现原理,终极给开发者留出了一套简单易懂、易摆设和易维护的分布式系统开发工具包。

  • Spring Cloud的主要组件

    • Spring Cloud由多个组件组成,其中包罗服务注册与发现中心(Eureka)、ribbon、Feign、断路器(Hystrix)、路由网关(zuul)、分布式设置中心(Spring Cloud Config)、消息总线(Spring Cloud bus)等。

  三、Eureka框架体系

  

  • 服务治理的紧张性

    • 在微服务架构中,服务治理是最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。而Eureka正是用于实现这一功能的关键组件。

  • Eureka的主要构成

    • Eureka主要包罗两个组件:EurekaServer和EurekaClient。

      • EurekaServer:是注册中心,提供服务注册等功能。各个服务节点启动后,会在EurekaServer中进行注册,如许EurekaServer中就有了全部服务节点的信息,并且Eureka有监控页面,可以在页面中直观地看到全部注册的服务的环境。同时,EurekaServer还通过心跳机制来管理服务节点,当某个节点服务在规定时间内没有发送心跳信号时,Eureka会从服务注册表中把这个服务节点移除。
      • EurekaClient:是基于Java的客户端组件,它使得与Eureka服务的交互更加容易。EurekaClient还带有一个内置的负载均衡器,可进行根本的轮询负载均衡。在Netflix中,有更复杂的负载均衡器会基于流量、资源使用、错误条件等几个因素来包裹Eureka以提供加权负载均衡,从而提供更强的弹性。


  四、Eureka的工作机制

  

  • 服务注册

    • 服务节点启动后,会向EurekaServer注册本身的信息,使得EurekaServer拥有全部服务节点的信息。

  • 心跳检测与康健检查

    • EurekaServer通过心跳机制来监控服务节点的状态。如果某个服务节点在规定时间内没有发送心跳信号,EurekaServer会判断该节点可能出现问题,并将其从服务注册表中移除。同时,Eureka也可能会进行康健检查来确保服务的可用性。

  • 客户端缓存机制

    • Eureka提供了客户端缓存的机制,纵然全部的EurekaServer都挂掉,客户端仍可以使用缓存中的信息调用服务节点的服务。

  • 与其他组件共同使用

    • Eureka一样平常共同Ribbon进行使用,Ribbon提供了客户端负载均衡的功能,Ribbon使用从Eureka中读取到的服务信息,在调用服务节点提供的服务时,会合理地进行负载。

  五、Spring Cloud Eureka与Eureka的区别

  

  • Spring Cloud Eureka与Eureka有点不太一样,Spring Cloud Netflix提供的胶水代码更换了一些初始化设置,并且去掉了一些不合理的例如单实例EurekaServer服务等待时间,还增加了更人性化的界面。
  六、Eureka与Zookeeper的对比(设计思绪方面)

  

  • Eureka:是AP型设计,不长期化,采用缓存的方式,通过增量更新注册信息。它更关注当前瞬时的服务状态,对于注册中心来说,这种设计在只关心当前服务是否可用的场景下比力合适。
  • Zookeeper:是CP型设计,会长期化数据,通过Watch变乱监控变化。与Eureka不同,Zookeeper在数据的长期化和变动监控方面有不同的策略。
  二、Spring Eureka存在的漏洞

  Spring Eureka作为微服务架构中的紧张组件,虽然提供了强大的服务发现和治理功能,但也存在一些安全漏洞。以下是根据搜刮结果整理的一些Spring Eureka相干的安全漏洞:
  一. XStream反序列化漏洞

  

  • 描述:Spring Boot Eureka中的一个安全漏洞,允许攻击者通过XStream反序列化实现远程代码执行(RCE)。该漏洞的使用条件包罗目的可出网、特定版本的eureka-client以及存在的特定依靠。
  • 使用步调

    • 设置恶意payload。
    • 监听服务。
    • 刷新设置,终极导致shell反弹。

  • 修复措施

    • 禁用/env接口或增加鉴权。
    • 关注其他可能被使用的接口。

  二、. 未授权访问漏洞

  

  • 描述:Spring Eureka未授权访问漏洞是由于Eureka Server在处置处罚客户端哀求时,没有正确验证哀求的身份,攻击者可以通过构造恶意哀求来绕过授权验证,直接访问Eureka Server的管理界面。
  • 使用步调

    • 构造一个GET哀求,访问Eureka Server的管理界面。
    • 在哀求头中添加一个恶意参数,例如:X-Forwarded-For:127.0.0.1。
    • 发送该哀求,如果Eureka Server没有进行身份验证,攻击者可以直接访问管理界面,获取敏感信息或者执行未授权操纵。

  • 防护措施

    • 在Eureka Server中启用安全认证,可以使用Spring Security等框架来实现。
    • 设置Eureka Server的防火墙,只允许指定IP所在或者网段访问管理界面。
    • 对于生产环境中的Eureka Server,发起使用VPN等安全通道进行访问,制止直接袒露在公网上。

  三. RCE漏洞

  

  • 描述:通过/env、/jolokia、/trace等接口,攻击者可以发送恶意哀求,触发远程代码执行(RCE)漏洞。
  • 使用步调

    • 在VPS创建flask_xstream.py ,使用flask返回payload,要执行的命令放置command标签内。
    • 分别发两次POST数据包。
    • 乐成执行命令。

  • 防护措施

    • 禁用不必要的接口。
    • 增加接口的鉴权机制。

  四. SpEL表达式注入漏洞

  

  • 描述:Spring Boot框架Whitelabel Error Page SpEL注入的缘故原由是系统报错页面把用户的输入当做了表达式来执行。此时URL中的参数值会用parseStringValue方法进行递归解析,其中${}包围的内容都会被解析执行,造成RCE漏洞。
  • 使用步调

    • 找到一个正常传参触发错误的地方。
    • 输入恶意的SpEL表达式,例如:/article?id=${7*7}。
    • 如果发现报错页面将7*7的值49计算出来表现在报错页面上,那么根本可以确定目的存在SpEL表达式注入漏洞。

  • 防护措施

    • 升级Spring Boot版本。
    • 对用户输入进行严酷的校验和过滤。

  三、Spring Eureka未授权访问漏洞

  Spring Eureka未授权访问漏洞是由于Eureka Server在处置处罚客户端哀求时,没有正确验证哀求的身份,攻击者可以通过构造恶意哀求来绕过授权验证,直接访问Eureka Server的管理界面。这种漏洞可能导致敏感信息泄露或未授权操纵的执行。
  一、漏洞使用步调

  

  • 构造恶意哀求:攻击者可以构造一个GET哀求,访问Eureka Server的管理界面。
  • 添加恶意参数:在哀求头中添加一个恶意参数,例如:X-Forwarded-For:127.0.0.1。
  • 发送哀求:如果Eureka Server没有进行身份验证,攻击者可以直接访问管理界面,获取敏感信息或者执行未授权操纵。
  二、防护措施

  为了防止Spring Eureka未授权访问漏洞的出现,可以采取以下措施:
  

  • 启用安全认证:在Eureka Server中启用安全认证,可以使用Spring Security等框架来实现。
  • 设置防火墙:设置Eureka Server的防火墙,只允许指定IP所在或者网段访问管理界面。
  • 使用安全通道:对于生产环境中的Eureka Server,发起使用VPN等安全通道进行访问,制止直接袒露在公网上。
  三、示例代码

  以下是一个使用Spring Security保护Eureka Server的示例代码:
  1. @Configuration
  2. @EnableWebSecurity
  3. public class SecurityConfig extends WebSecurityConfigurerAdapter {
  4.     @Override
  5.     protected void configure(HttpSecurity http) throws Exception {
  6.         http.csrf().disable()
  7.             .authorizeRequests()
  8.                 .antMatchers("/eureka/**").permitAll() // 允许对管理端点的未授权访问
  9.                 .anyRequest().authenticated() // 其他所有请求都需要身份验证
  10.             .and()
  11.             .httpBasic(); // 启用HTTP基本认证
  12.     }
  13. }
复制代码
四、Eureka未授权访问风险评估方法

  一、风险评估

  主要涉及以下几个方面:
  

  • 漏洞存在的可能性:检查Eureka Server是否启用了安全认证机制,如果没有启用,可能存在未授权访问的风险。
  • 攻击者的动机和能力:评估潜在攻击者的动机和技能能力,例如,攻击者是否具备构造恶意哀求的能力。
  • 系统袒露面:评估Eureka Server的网络袒露环境,例如,是否直接袒露在公网上,是否有防火墙保护等。
  • 敏感信息的存储和传输:评估Eureka Server管理界面中存储和传输的敏感信息类型和数量,例如,服务注册信息、设置参数等。
  • 防护措施的有效性:评估现有防护措施的有效性,例如,是否启用了身份验证、是否设置了防火墙规则等。
  二、风险评估步调

  

  • 漏洞扫描:使用漏洞扫描工具对Eureka Server进行扫描,检查是否存在未授权访问漏洞。
  • 渗出测试:模拟攻击者的行为,实验通过构造恶意哀求来访问Eureka Server的管理界面。
  • 设置检察:检查Eureka Server的设置文件,确保启用了安全认证机制,并设置了适当的防火墙规则。
  • 日记分析:分析Eureka Server的日记文件,查找是否存在未授权访问的记载。
  • 敏感信息审计:审计Eureka Server管理界面中存储和传输的敏感信息,评估其紧张性和潜在影响。
  三、风险评估陈诉

  风险评估完成后,应天生一份具体的风险评估陈诉,包罗以下内容:
  

  • 风险概述:简要描述Eureka未授权访问风险的背景和缘故原由。
  • 评估方法:具体描述风险评估的方法和步调。
  • 评估结果:列出发现的安全问题和漏洞,并评估其严峻水平。
  • 防护发起:提出具体的防护措施和发起,例如,启用身份验证、设置防火墙规则等。
  • 结论和发起:总结风险评估的结果,并提出相应的改进发起。
  五、Eureka渗出测试案例分析

  Eureka是Netflix开源的一个服务发现框架,广泛应用于微服务架构中。由于其在网络架构中的紧张性,Eureka的安全性也成为了关注的重点。以下是一个关于Eureka的渗出测试案例分析。
  一、案例背景

  假设某公司使用Eureka作为其微服务架构的服务发现组件。近期,公司发现其Eureka管理界面存在非常访问,怀疑可能遭受了黑客攻击。为了确认是否存在安全隐患并找出潜在漏洞,公司决定委托专业的渗出测试团队进行一次模拟渗出测试。
  二、渗出测试过程

  

  • 信息收集

    • 渗出测试团队首先通过搜刮引擎、交际媒体等途径收集目的公司的相干信息,包罗Eureka Server的IP所在、版本信息、网络架构等。
    • 使用专业的漏洞扫描工具,对Eureka Server进行了全面的漏洞扫描。

  • 漏洞使用

    • 扫描结果表现,Eureka Server存在一个未授权访问漏洞。
    • 渗出测试团队使用发现的未授权访问漏洞,实验访问Eureka管理界面。
    • 颠末多次实验,乐成获取了Eureka管理界面的访问权限。

  • 权限提升

    • 使用获取的管理界面访问权限,渗出测试团队乐成登录到Eureka管理界面。
    • 在管理界面中,他们发现了一个未授权的文件上传功能,通过该功能可以将恶意文件上传到服务器。

  • 攻击扩散

    • 渗出测试团队将一个恶意脚本文件上传到服务器,并通过该脚本获取了服务器的完全控制权。
    • 随后,他们使用服务器上的其他漏洞,进一步扩散攻击范围,终极获取了目的公司的整个网络控制权。

  • 陈诉编写

    • 完成渗出测试后,渗出测试团队将测试结果整理成一份具体的陈诉,包罗测试过程、发现的漏洞、攻击路径以及发起的修复措施等。
    • 他们将陈诉提交给目的公司,资助他们了解自身的网络安全状况,提高防护能力。

  三、案例分析

  通过本次模拟渗出测试案例,我们可以看到Eureka在网络安全防护中的紧张作用。在现实操纵中,渗出测试团队需要运用各种技能和工具,全面检测Eureka Server的安全漏洞,模拟黑客的攻击行为,从而发现潜在的安全隐患。
  对于企业和个人而言,了解和学习渗出测试技能不但有助于提高自身的网络安全防护能力,还能更好地应对日益严峻的网络威胁。在将来的网络安全范畴,掌握渗出测试技能的专业人才将具有更广阔的职业发展空间。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

杀鸡焉用牛刀

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表