Java安全-SpirngMVC>5.3.1 Controller内存马

💡 原文中文,约4100字,阅读约需10分钟。
📝

内容提要

在高版本Spring Controller内存马注入实验中,使用原payload报错,原因是pathPatternsCondition为空。通过修改RequestMappingInfo构造方法,成功注册映射并触发内存马。

🎯

关键要点

  • 高版本Spring Controller内存马注入实验中,使用原payload会报错。
  • 报错原因是pathPatternsCondition为空。
  • 通过修改RequestMappingInfo构造方法,成功注册映射并触发内存马。
  • 正常情况下的mappings与poc的mappings存在问题,主要是pathPatternsCondition为空。
  • 构造RequestMappingInfo时需要使用新的构造方法以适应新版Spring路由映射方式。
  • 成功触发内存马的版本覆盖从5.3.0升级到v6.1.1。

延伸问答

高版本Spring Controller内存马注入实验中出现什么错误?

出现java.lang.IllegalArgumentException错误,提示pathPatternsCondition为空。

如何解决高版本Spring Controller内存马注入中的错误?

通过修改RequestMappingInfo的构造方法,成功注册映射并触发内存马。

为什么原payload在高版本Spring中会报错?

因为在高版本中,pathPatternsCondition为空,导致无法正常处理请求。

在高版本Spring中,如何构造RequestMappingInfo?

需要使用新的构造方法,传入适当的参数以适应新版Spring路由映射方式。

成功触发内存马的版本范围是什么?

成功触发内存马的版本范围是从5.3.0升级到v6.1.1。

高版本Spring Controller内存马注入实验的主要逻辑是什么?

主要逻辑是手动添加controller映射,以便正确注册和触发内存马。

➡️

继续阅读