Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring security Spring HttpInvoker在身份验证之前易受最近的反序列化攻击?_Spring Security_Spring Remoting - Fatal编程技术网

Spring security Spring HttpInvoker在身份验证之前易受最近的反序列化攻击?

Spring security Spring HttpInvoker在身份验证之前易受最近的反序列化攻击?,spring-security,spring-remoting,Spring Security,Spring Remoting,最近的Java反序列化攻击(带有指向主要应用程序服务器以及Spring和Groovy应用程序的示例代码链接)引起了很多恐慌。文章指出,这些攻击绕过了身份验证,因为在完成身份验证检查之前,对象负载被反序列化。不过,它并没有具体地命名或讨论SpringHttpInvoker,而且我还没有在其他地方找到关于这一点的明确声明 对于通过Spring HttpInvoker公开的远程服务,使用带有基本身份验证的Spring安全性,在反序列化(潜在恶意)对象负载之前是否执行身份验证检查?或者文章中关于“身份验

最近的Java反序列化攻击(带有指向主要应用程序服务器以及Spring和Groovy应用程序的示例代码链接)引起了很多恐慌。文章指出,这些攻击绕过了身份验证,因为在完成身份验证检查之前,对象负载被反序列化。不过,它并没有具体地命名或讨论SpringHttpInvoker,而且我还没有在其他地方找到关于这一点的明确声明


对于通过Spring HttpInvoker公开的远程服务,使用带有基本身份验证的Spring安全性,在反序列化(潜在恶意)对象负载之前是否执行身份验证检查?或者文章中关于“身份验证不会保护您免受此攻击”的断言也适用于HttpInvoker服务吗?

决定自己测试一下。为了测试处理入站HTTP Invoker服务调用时的事件序列,我设置了一个简单的Spring Boot starter应用程序,如下所示:

  • 一个HelloWorld服务公开一个简单的hello()方法,该方法将自定义HelloDto对象作为输入参数
  • HelloDto中的自定义序列化逻辑用于记录序列化和反序列化
  • Spring Security用于保护服务的基本身份验证
我将Spring安全性和Spring远程处理的日志记录提升到调试级别,然后通过一个简单的JUnit测试客户端远程调用HelloWorldService。我通过控制台日志确认,在反序列化发生之前,Spring Security正在对调用方进行身份验证和授权

正如我通过事件的顺序思考的那样,这是有道理的。Spring安全性作为过滤器链实现,而HTTP调用程序逻辑由DispatcherServlet处理,该DispatcherServlet将在过滤器提前执行后从逻辑上获得控制权


如果任何一位Spring专家能够确认这是一个准确的解释(或者特别是如果有任何模糊的“边缘案例”,在调用方被认证之前反序列化仍然会影响我们),那将非常感谢。

我会在谷歌上搜索ysoserial有效负载生成器。使用每个选项创建有效负载,然后使用正确的内容类型集将其卷曲到端点。在我的工作中,我们做到了这一点,并对我们能够在开发服务器上远程执行代码感到惊讶