一文详解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版本等。
➡️