中间件,顾名思义,是作为中间存在的一层,它下层对接硬件平台、操作系统、系统软件,上层部署的是各个应用。
中间件又有Web服务器中间件、消息中间件、数据库中间件等,本文根据网上公开资料,总结了近几年Web服务器中间件的常见漏洞。
1. Tomcat
漏洞名称 | 漏洞影响 | 影响版本 |
---|---|---|
Tomcat 任意文件写入(CVE-2017-12615)危害:低危 | 当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法,攻击者可向服务器上传包含任意代码的 JSP 文件。JSP 文件中的代码将能被服务器执行。 | Apache Tomcat 7.0.0 - 7.0.79(7.0.81修复不完全) |
Tomcat 远程代码执行(CVE-2019-0232)危害:高危 | 在启用了enableCmdLineArguments的Windows上运行Tomcat时,由于JRE将命令行参数传递给Windows的方式存在错误,CGI Servlet很容易受到远程执行代码的攻击。CGI Servlet默认是关闭的 | Apache Tomcat 9.0.0.M1 to 9.0.17Apache Tomcat 8.5.0 to 8.5.39Apache Tomcat 7.0.0 to 7.0.93 |
Tomcat 文件包含漏洞(CVE-2020-1938)危害:高危 | 由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件 | apache tomcat 6apache tomcat 7 < 7.0.100apache tomcat 8 < 8.5.51apache tomcat 9 < 9.0.31 |
弱口令爆破 后台webshell文件上传 | 先通过爆破获取Tomcat后台的弱口令,然后登录后台,通过利用Tomcat后台支持war包上传,来上传webshell | Tomcat <= 6.0.0 默认用户名为admin,密码为空,无暴力破解限制。Tomcat >= 6.0.0 无默认用户,五次失败后,账户即被锁定。但,正常安装的情况下,tomcat 8 中默认没有任何用户,且 Manager 页面只允许本地 IP 访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。 |
Apache Tomcat HTTP/2 拒绝服务漏洞(CVE-2020-11996)危害:重要 | 通过恶意构造的HTTP/2请求序列可能会在几秒钟内触发高CPU使用率。如果在并发HTTP/2连接上发出足够数量的此类请求,服务器可能会变得无响应。 | Apache Tomcat : 10.0.0-M1 to 10.0.0-M5Apache Tomcat : 9.0.0.M1 to 9.0.35Apache Tomcat : 8.5.0 to 8.5.55 |
2. Nginx
漏洞名称 | 漏洞影响 | 影响版本 |
---|---|---|
Nginx 越界读取缓存漏洞(CVE-2017-7529)危害:低危 | Nginx读取http请求时,如果包含range,那么Nginx会根据range指定的数据范围读取文件数据内容,如果该range是负数,并且读到了缓存文件,那么会返回缓存文件中的“文件头”或“HTTP返回包头”,缓存文件头可能包含IP地址的后端服务器或其他敏感信息,从而导致信息泄露。 | Nginx 0.5.6-1.13.2 |
Nginx HTTP/2 拒绝服务漏洞(CVE-2018-16843,CVE-2018-16844)危害:低危 | Nginx某些版本的HTTP/2实现过程中存在安全漏洞,可能会导致过多的内存消耗(CVE-2018-16843)和CPU使用率(CVE-2018-16844) | Nginx 1.9.5-1.15.5 |
Nginx 组件内存泄露漏洞(CVE-2018-16845)危害:低危 | 某些版本ngx_http_mp4_module中发现了一个安全问题,当用户对Nginx添加MP4流媒体支持,恶意的MP4文件会导致处理进程无限循环、崩溃或者内存泄露 | Nginx 1.1.3 ,1.0.7 |
Nginx任意代码执行漏洞(CVE-2021-23017)危害:高危 | 由于Nginx在处理DNS响应时存在安全问题,当在配置文件中使用 “resolver ”指令时,远程攻击者可以通过伪造来自DNS服务器的UDP数据包,构造DNS响应造成1-byte内存覆盖,从而导致拒绝服务或任意代码执行。 | Nginx 0.6.18-1.20.0 |
CRLF注入漏洞 | Nginx会将$uri进行解码,如果输入的网址带有 ,可引入换行符,实现头部注入。 | 配置不当会引起此漏洞,应过滤r、n这样的换行符 |
目录穿越漏洞 | 如果Nginx的配置中,location的url上/files没有加后缀/,而alias的/home/是有后缀/的,这个/就可以导致从/home/目录穿越到他的上层目录 | 配置不当会引起,location 和 alias 的值要不都加/ 要不都加 |
add_header被覆盖 | Nginx配置文件子块(server、location、if)中的add_header,将会覆盖父块中的add_header添加的HTTP头,造成一些安全隐患,如导致父块中的XSS设置失效 | 这是Nginx继承的一个坑,配置的时候要留意子块的配置 |
3. JBOSS/WildFly
漏洞名称 | 漏洞影响 | 影响版本 |
---|---|---|
JBOSS A反序列化命令执行漏洞(CVE-2017-12149)危害:高危 | Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞 | JBoss 5.x-6.x |
JBossMQ JMS 反序列化漏洞(CVE-2017-7504)危害:高危 | JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。 | JBoss AS 4.x及之前版本 |
Administration Console 弱口令 后台getshell | JBoss Administration Console存在默认账号弱口令,如果Administration Console可以登录,就可以在后台部署war包getshell。 | 全版本 |
还有些比较老的漏洞就没有列了。
大家在选型的时候尽可能选择安全版本,下次总结IIS、Weblogic、WebSphere。