代码审计——SpringBoot SpEL 表达式注入漏洞

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

内容提要

SpringBoot的Whitelabel错误页面存在SpEL注入漏洞,攻击者可通过特定参数触发。受影响版本为1.1.0-1.1.12和1.2.0-1.2.7,建议升级至1.3.1及以上版本。

🎯

关键要点

  • SpringBoot的Whitelabel错误页面存在SpEL注入漏洞。
  • 漏洞发生在处理报错参数时,使用了递归处理和SpEL表达式解析。
  • 受影响的版本包括1.1.0-1.1.12和1.2.0-1.2.7。
  • 建议用户升级至1.3.1及以上版本以修复漏洞。
  • 攻击者可以通过特定的payload触发漏洞,执行任意代码。
  • 漏洞的触发点在于错误页面的message占位符处理。
  • 补丁通过创建NonRecursivePropertyPlaceholderHelper类来防止递归解析。
  • 补丁的详细信息可以在GitHub上找到。

延伸问答

SpringBoot的Whitelabel错误页面是什么漏洞?

这是一个SpEL注入漏洞,攻击者可以通过特定参数触发,执行任意代码。

哪些版本的SpringBoot受到此漏洞影响?

受影响的版本包括1.1.0-1.1.12和1.2.0-1.2.7。

如何修复SpringBoot的SpEL注入漏洞?

建议用户升级至1.3.1及以上版本以修复漏洞。

漏洞是如何被触发的?

漏洞通过错误页面的message占位符处理,攻击者输入特定payload触发SpEL解析。

补丁是如何防止漏洞的?

补丁创建了NonRecursivePropertyPlaceholderHelper类,防止递归解析。

可以在哪里找到补丁的详细信息?

补丁的详细信息可以在GitHub上找到。

➡️

继续阅读