首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CVE-2024-22262(CVE-2024-22259绕过)浅析

-22243、CVE-2024-22259的修复黑名单校验不充分,攻击者可能构造在协议、主机名、用户名、端口部分包含\\的url,使得通过UriComponentsBuilder类解析得到错误的值,绕过业务应用中的主机地址验证...0x00 前言 UriComponentsBuilderSpring Web中用于构建和操作URI的工具类。...Spring官方近期披露了CVE-2024-22262,在受影响版本中,由于此前CVE-2024-22243、CVE-2024-22259的修复黑名单校验不充分,攻击者可能构造在协议、主机名、用户名、端口部分包含...0x01 CVE-2024-22262 1.1 漏洞描述 UriComponentsBuilderSpring Web中用于构建和操作URI的工具类。...除了host以外,在修复时也考虑到了schema还有port匹配额外\的问题,避免在类似通过UriComponentsBuilder限制某个协议访问时,结合浏览解析的特性,引入额外\绕过的问题。

2.8K10

带你了解URI Builder模式(UriComponentsUriComponentsBuilder)【享学Spring MVC】

通过name属性的引入,就顺利过渡到了接下来要将的重点,也是本文的重中之重:Spring MVC支持的强大的URI Builder模式。...,这就是本文重点需要讲述的脚手架~ Spring MVC从3.1开始提供了一种机制,可以通过UriComponentsBuilder和UriComponents面向对象的构造和编码URI。...一般构建它我们使用UriComponentsBuilder构建 public abstract class UriComponents implements Serializable { // 捕获...实际应用中我们所有的UriComponents都应是通过构建构建出来的~ // @since 3.1 public class UriComponentsBuilder implements UriBuilder...(@Nullable String query) {} // 遇上相同的key就替代,而不是直接在后面添加了(上面query是添加) @Override public UriComponentsBuilder

2.9K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    简单看下最近的Spring Secrurity、Spring漏洞(CVE-2024-22234、CVE-2024-22243)

    test 增加下密码验证和/index的无鉴权的配置(交给应用手动配置) @Configuration @EnableWebSecurity....build(); return new InMemoryUserDetailsManager(user); } } 新增控制并配置需要用户手动输入密码...#]*)"; 环境搭建 这里假设存在一个场景,后端会将用户输入的url交给UriComponentsBuilder进行验证,通过后进行正常的访问,后端有个简单的黑名单host判断(evil.com) :...复现 一般情况下我们知道绕过ssrf会用到@,如果url为http://A.com@B.com ,部分的host校验库会识别这个urlHost为A.com,而浏览或者http client实际会访问B.com...url进行访问,因为url中存在[ 会让程序报错: 所以更多利用场景我猜可能是使用UriComponentsBuilder取的host重新进行url拼接来进行访问 总结 Spring Security中这个漏洞可能对于实战利用不大

    2.7K10

    【译】Java 构造 URL 请求链接的推荐姿势

    在 Java 中,我们可以使用多个库来动态地向 URL 中添加查询并保证 URL 的有效性。 在本文中,我们将学习如何使用其中的三个库。...article=alpha", uri.toString()); } 4、Spring UriComponentsBuilder 如果我们有一个 Spring 应用程序,使用 Spring 提供的 UriComponentsBuilder...为了使用它,我们需要在 pom.xml 中添加 spring-web 依赖项: org.springframework <...我们可以使用 UriComponentsBuilder 通过 fromUriString() 创建一个 URI,然后使用 queryParam() 追加查询: @Test void whenUsingSpringUriComponentsBuilder_thenParametersAreCorrectlyAdded...我们可以使用 Java 扩展包、Apache 的 UriBuilder 或 spring-web 解决方案来添加查询,每种方法都能确保 URL 结构有效,并允许我们动态地构建它们。

    1K10

    【小家SpringSpring MVC好用工具介绍:UrlPathHelper、WebUtils、RequestContextUtils、WebApplicationContextUtils...

    这个和Spring MVC的原理:@RequestBody注解的参数解析(RequestResponseBodyMethodProcessor)就是调用了read()方法去获取到内容的。...Spring MVC 提供了一种机制,可以构造和编码URI – 使用UriComponentsBuilder和UriComponents。这样我们不再自己去拼接了,提高了正确性。...它可以细粒度的控制URI的各个要素,如构建、扩展模板变量以及编码 这两个类在Spring MVC controller内部原理中使用特别多,我们若有需要,也可以借助它来使用。...从名字就可知,它和MVC有关,也就是和我们的控制有关。...同时还有:UriUtils、UriComponents、UriComponentsBuilder等等 总结 Spring-web这个jar包内提供给我们还是有几个比较好用的类的,大家知悉即可。

    1.4K20

    CVE-2024-22243|Spring Framework URL解析不当漏洞(重定向攻击和SSRF攻击)

    Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。...Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO 的编程模型来促进良好的编程实践。...0x01 漏洞描述 受影响版本中,由于 UriComponentsBuilder 处理URL时未正确过滤用户信息中的方括号 `[` ,攻击者可构造包含方括号的恶意URL绕过主机名验证。...当应用程序使用UriComponentsBuilder.fromUriString()来解析外部提供的URL(如通过查询参数)并对解析的URL的主机执行验证检查时可能容易受到Open重定向攻击和SSRF...0x02 CVE编号 CVE-2024-22243 0x03 影响版本 Spring Framework 6.1.0 - 6.1.3 Spring Framework 6.0.0 - 6.0.16 Spring

    4.7K60

    Spring Security 6.x OAuth2登录认证源码分析

    首先,能够想到的是,任何一家的店铺想要支持无卡消费,就必须在商场内进行登记注册,只有在册的店铺才被允许访问储值卡的账户;其次,用户不应该在每家店铺消费时都提供用户名密码,这样密码就存在泄露的风险,商场应该提供一种用户授权的交互方式...脚本内发起授权请求,有令牌泄露的风险,安全性一般,另外也不支持refreshToken资源属主密码模式(Resource Owner Password Credentials Grant):用户需要在第三方应用中输入用户名密码...,上面提到过,这种模式有暴露密码的风险,安全性较差,在OAuth2官方推荐的最佳实践中,已经明确禁止使用这种模式,并且在Spring Security 高版本中也已经弃用客户端凭证模式(Client Credentials...Boot中,当我们在配置文件中添加spring.security.oauth2.client.registration相关内容时,例如上面的github配置,就会触发自动配置以完成客户端信息的注册,...registrationId查询到对应客户端的注册信息,并通过构造OAuth2AuthorizationRequest.Builder,创建出一个OAuth2AuthorizationRequest实例

    24810

    Spring Cloud Gateway网关中各个过滤器的作用与介绍

    Spring Cloud Gateway是一个基于Spring Framework 5,Spring Boot 2和Project Reactor的API网关工具,它的灵活性和强大性使得它成为了构建微服务架构的理想选择...Spring Cloud Gateway通过一系列的过滤器来处理请求,并将请求路由到适当的微服务。这些过滤器是它的核心组成部分,每个过滤器都有自己的特定功能。...通过合理配置和组合这些过滤器,您可以构建强大、灵活且高度可定制的API网关,满足不同场景下的需求。 在实际项目中,根据具体的业务需求和安全策略,您可以选择使用适当的过滤器来增强您的API网关。...希望本文对于理解Spring Cloud Gateway中各个过滤器的作用有所帮助,也能够帮助您更好地构建微服务架构中的API网关。 如果您有兴趣,可以尝试自己编写和定制过滤器,以满足特定的需求。...通过深入研究和实践,您将更好地掌握Spring Cloud Gateway的强大功能,从而构建出高效、可靠的微服务系统。祝您在API网关的使用中取得成功!

    65310

    漫谈设计模式在 Spring 框架中的良好实践

    那么,本文的核心话题是 Spring 如何通过使用大量设计模式和良好实践来构建应用程序。...Spring 框架使用装饰模式构建重要功能,如事务、缓存同步和与安全相关的任务。...Spring Security 允许通过使用安全过滤器链在应用程序中实现身份验证和授权功能。这是一个高度可配置的框架。由于使用了责任链设计模式,我们可以在过滤器链上添加自定义过滤器以自定义功能。...解释模式 在 Spring 框架中,解释模式在 Spring 表达式语言(SpEL)中使用。...迭代模式 Spring 框架还通过 CompositeIterator 类扩展迭代模式。该模式主要用于 Java 语言的集合框架中,用于按顺序迭代访问元素。

    61010

    《设计模式》总结和在spring框架的实践

    FactoryBean 帮助 Spring 构建它自己无法轻松构建的对象。通常这是用来构造具有许多依赖关系的复杂对象。它也可以根据配置构造高易变的逻辑。...Spring 框架使用装饰模式构建重要功能,如事务、缓存同步和与安全相关的任务。...Spring Security 允许通过使用安全过滤器链在应用程序中实现身份验证和授权功能。这是一个高度可配置的框架。由于使用了责任链设计模式,我们可以在过滤器链上添加自定义过滤器以自定义功能。...解释模式 在 Spring 框架中,解释模式在 Spring 表达式语言(SpEL)中使用。...迭代模式 Spring 框架还通过 CompositeIterator 类扩展迭代模式。该模式主要用于 Java 语言的集合框架中,用于按顺序迭代访问元素。

    42610

    详解SpringCloud-gateway动态路由两种方式,以及路由加载过程

    yml文件的,它返回的是PropertiesRouteDefinitionLocator,该类继承了RouteDefinitionLocator,RouteDefinitionLocator就是路由的装载,...通过这几个实现类,再结合上面的AutoConfiguration里面的Primary信息,就知道加载配置信息的顺序。...PropertiesRouteDefinitionLocator-->|配置文件加载初始化| CompositeRouteDefinitionLocator RouteDefinitionRepository-->|存储中加载初始化...之后如果要动态修改配置,就可以通过类似于上面的方式,来获取json字符串,然后将字符串放到redis里进行替换。替换后,需要通知gateway主动刷新一下。 ? ?...3 通过REST接口 gateway是自带接口能增删改查配置的,这个网上有比较多的教程,随便找个看看就明白了。

    17K50

    Spring Boot 接入 GitHub 第三方登录

    ,而不需要将用户名密码提供给第三方网站或分享他们数据的所有内容。...这个应用相当于我们自己的应用(客户端),被注册在Github(授权服务)中了,如果我们应用中的用户有github账号的话,则可以基于oauth2来登录我们的系统,替代原始的用户名密码方式。...如果当前是授权码类型的授权请求那么就需要将这个请求信息保存下来,因为接下来授权服务回调我们需要用到这个授权请求的参数进行校验等操作(比对state),这里是通过authorizationRequestRepository...自动配置 在spring指南的例子中,我们发现只是配置了一个简单oauth2Login()方法,一个完整的oauth2授权流程就构建好了,其实这完全归功于spring-boot的autoconfigure.../spring-security/issues/6320 使用spring-boot和oauth2.0构建社交登陆 https://spring.io/guides/tutorials/spring-boot-oauth2

    2.4K20

    漫谈设计模式在 Spring 框架中的良好实践

    那么,本文的核心话题是 Spring 如何通过使用大量设计模式和良好实践来构建应用程序。...Spring 框架使用装饰模式构建重要功能,如事务、缓存同步和与安全相关的任务。...Spring Security 允许通过使用安全过滤器链在应用程序中实现身份验证和授权功能。这是一个高度可配置的框架。由于使用了责任链设计模式,我们可以在过滤器链上添加自定义过滤器以自定义功能。...解释模式 在 Spring 框架中,解释模式在 Spring 表达式语言(SpEL)中使用。...迭代模式 Spring 框架还通过 CompositeIterator 类扩展迭代模式。该模式主要用于 Java 语言的集合框架中,用于按顺序迭代访问元素。

    1.2K30

    Spring Security入门6:Spring Security的默认配置

    构建认证请求:在用户访问受保护资源时,需要提供身份验证凭证。这可以通过用户名密码表单、HTTP 基本认证、OAuth2 等方式来实现。...Spring Security 的身份验证和授权过程涉及到配置认证管理、提供用户信息、构建认证请求、过滤器链处理、身份验证提供者、认证成功处理、授权过滤器链和基于注解的授权等多个环节。...,用于处理基于表单的用户名密码身份验证请求。...这样,当用户提供正确的用户名密码时,身份验证管理将使用该提供者进行验证。 总之,Spring Security的身份验证管理是一个关键的组件,用于处理用户的身份验证请求。...它可以通过在方法上添加注解(如 @Secured、@PreAuthorize 等)来控制方法的访问权限。

    69710

    微服务架构之Spring Boot(三十九)

    bean构建 开发人员可以通过提供自定义 ReactorResourceFactory 或 JettyResourceFactory bean覆盖Jetty和Reactor Netty的资源配置 -...要向Web应用程序添加方法级安全性,您还可以使用所需设置添加 @EnableGlobalMethodSecurity 。其他 信息可在 Spring安全参考指南中找到。...用户名为 user ,密码是随机的,在应用程序启动时以INFO级别打印,如以下示例所示: Using generated security password: 78fa095d-3f4c-48b1-ad50...否则,不会打印默认密码。 您可以通过提供 spring.security.user.name 和 spring.security.user.password 来更改用户名密码。...Spring Boot示例中有几个安全应用程序可以帮助您开始使用常见用例。 可以通过添加自定义 WebSecurityConfigurerAdapter 来覆盖访问规则。

    78420
    领券