一文详解SpEL表达式注入漏洞

💡 原文中文,约3800字,阅读约需9分钟。
📝

内容提要

本文介绍了Spring Expression Language(SpEL)及其常见注入攻击,以及CVE-2022-22963和CVE-2022-22980两个漏洞实例的修复方式、检测与防御手段。华为云的PaaS技术创新Lab致力于提供下一代智能研发工具服务。

🎯

关键要点

  • 本文介绍了SpEL表达式及其常见注入攻击。
  • 外部数据应视为不可信,需经过校验或过滤。
  • SpEL表达式注入漏洞可能导致任意代码执行和拒绝服务。
  • SpEL支持多种功能,包括方法调用、集合操作等。
  • 使用StandardEvaluationContext和未校验输入会导致SpEL注入漏洞。
  • CVE-2022-22963是Spring Cloud Function的SpEL注入漏洞,攻击者可通过请求头注入恶意SpEL。
  • 修复CVE-2022-22963的方式包括使用SimpleEvaluationContext和标记表达式来源。
  • CVE-2022-22980是Spring Data MongoDB的SpEL注入漏洞,攻击路径通过Postman发送请求。
  • 修复CVE-2022-22980的方式是重新实现evaluator并指定EvaluationContext类型。
  • 检测与防御手段包括使用静态分析工具、校验用户输入、及时更新Spring Framework版本等。
➡️

继续阅读