长亭百川云 - 文章详情

RASP| Spring data mongodb spel(CVE-2022-22980)

RASP安全技术

39

2024-07-13

    Spring Data MongoDB 是一个开源项目,它提供了与 MongoDB 文档数据库的集成,可以极大提高 Java 开发人员在使用 MongoDB 时的效率。近日监控到 Spring Data MongoDB 爆出 SpEL 表达式注入漏洞 CVE-2022-22980。

    当使用 `@Query` 或 `@Aggregation` 注释进行查询并且通过 SpEL 表达式中形如 `?0` 、`?1` 等占位符进行参数赋值时,可导致 SpEL 表达式注入漏洞,从而实现 RCE 。影响版本如下:

  •  v3.4.0

  •  v3.3.0 to v3.3.4

  •  Older, unsupported versions are also affected

环境搭建

    为了方便漏洞调试分析,新建一个 SpringBoot 项目,并引入 Spring Data MongoDB v3.4.0 。参考  Spring Data MongoDB 查询 SpEL 解析定义规范以及补丁对比分析结果,完成调试环境配置。最后为了方便构造漏洞测试过程,编写如下控制器:

(https://github.com/threedr3am/learnjavabug/tree/master/spring/spring-data-mongodb-spel-CVE-2022-22980)

漏洞复现

请求参数为 SpEL 表达式注入漏洞载荷,最终效果如下:

`curl --location --request POST 'http://49.235.111.228:9999/demo' \``--header 'Content-Type: application/x-www-form-urlencoded' \``--data-urlencode 'keyword=T(java.lang.String).forName('\''java.lang.Runtime'\'').getRuntime().exec('\''/System/Applications/Calculator.app/Contents/MacOS/Calculator'\'')'`

管理端:

匹配到命令执行的调用栈,判定为高危

**后续功能迭代
**

  • 增加SPEL插件模块:近期SPEL表达式注入漏洞发生多个,增加表达式检测插件,提高检测能力;

如需获取更多信息,请访问我们的页面(http://www.jrasp.com/)  开源免费,欢迎使用

  • 微信:sear2022

  • jrasp 目前已经接入主机超过500,防护进程超过5000+,成熟稳定;

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2