栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloudFunction漏洞分析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloudFunction漏洞分析

SpringCloudFunction是一个SpringBoot开发的Servless中间件(FAAS),支持基于SpEL的函数式动态路由。在特定配置下,3 <= 版本 <= 3.2.2( commit dc5128b 之前)存在SpEL表达式执行导致的RCE。

补丁分析

在 main 分支 commit dc5128b 中,新增了 SimpleevaluationContext :

由 isViaHeader 变量作为flag,在解析前判断 spring.cloud.function.routing-expression 的值是不是取自HTTP头,如果是的话就用 SimpleevaluationContext 解析SpEL语句,不是来自外部输入时(比如 System.setProperty )才用 StandardevaluationContext 解析。

同样的,官方测试用例已经清楚地写明了漏洞位置与Payload:

提取出测试类后在apply方法下断并跟入,省略一些中间流程,最终可以看到从HTTP头 spring.cloud.function.routing-expression 中取出SpEL表达式并由 StandardevaluationContext 解析:

至此source与sink已经清晰,虽然测试用例可以模拟触发漏洞,但还是要搭出一套能实际复现的环境。刚开始时想不开,自己在那啃文档碎碎写了一两个小时demo硬是搭不起来,后来发现 官方提供的sample 就很好用Orz:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/785216.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号