web服务器/中间件漏洞系列6:jetty漏洞汇总

在这里插入图片描述

JETTY简介:

Jetty作为Eclipse基金会的一部分,是一个纯粹的基于Java的网页服务器和Java Servlet容器,其支持最新的Java Servlet API,同时支持WebSocket,SPDY,HTTP/2协议。

一、CVE-2021-28164 [34429] 敏感信息泄露

1、漏洞简介:

在Jetty9.4.37版本中,为了符合RFC3986中的规范,选择性地支持可能有歧义解释的URI,默认模式允许URL编码,简单看下RFC3986(替代RFC2396)的规定

在这里插入图片描述
其大致意思是:...称为点段,都是为路径名层次结构中的相对引用而定义的,它们在一些操作系统文件目录结构中分别代表当前目录和父目录。但是与文件系统不同的是,这些点段仅在 URI 路径中解释层次结构,并作为解析过程的一部分被删除。也就是说在解析URI路径时,需要先处理...,Jetty为了符合这种处理方式,却导致了一系列的漏洞产生,首先是在9.4.39版本中修复了CVE-2021-28164,然后出现了新的绕过,其又在9.4.43版本中修复了CVE-2021-34429。

2、漏洞利用

1)CVE-2021-28164漏洞利用

  1. 访问docker搭建的漏洞环境(8080端口),是一个简单的初始化页面。直接访问/WEB-INF/web.xml 会响应一个404d 页面。
    在这里插入图片描述

  2. 执行攻击payload读取web.xml。payload: /%2e/WEB-INF/web.xml
    在这里插入图片描述

2)CVE-2021-34429 修复绕过

基本绕过原理:

可以使用一些编码字符来制作URI,以访问WEB-INF目录的内容和/或绕过一些安全限制。默认合规模式允许带有包含 %u002e 段的 URI 的请求访问WEB-INF目录中的受保护资源。

例如,/%u002e/WEB-INF/web.xml可以检索 web.xml 文件的请求。这可能会泄露有关 Web 应用程序实现的敏感信息。同样,编码的空字符可能会阻止正确的规范化,因此/.%00/WEB-INF/web.xml也会检索 web.xml 文件。

复现过程:

  1. 照常访问/WEB-INF/web.xml,响应404.

  2. 使用%u002e绕过:
    在这里插入图片描述

  3. 使用空字符绕过:

在这里插入图片描述

二、CVE-2021-28169

1、漏洞简介:

在9.4.40, 10.0.2, 11.0.2版本前,Jetty Servlets中的ConcatServletWelcomeFilter类存在多重解码问题,如果开发者主动使用了这两个类,攻击者可以利用其访问WEB-INF目录下的敏感文件,造成配置文件及代码泄露。

影响版本:

  • jetty 9.4.40
  • jetty 10.0.2
  • jetty 11.0.2

2、漏洞复现

  1. 访问8080端口,是一个初始的example页面,尝该页面使用到了ConcatServlet来优化静态文件的加载,

    <link rel="stylesheet" href="/static?/css/base.css&/css/app.css">

  2. 正常通过/static?/WEB-INF/web.xml无法访问到敏感文件web.xml.

  3. 对字母“W"进行双重URL编码,即可绕过限制进行访问:
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45590334/article/details/121669699