Apache Tomcat 跨站脚本漏洞处理(CVE-2019-0221)

漏洞描述

Apache Tomcat 跨站脚本漏洞描述:

Apache 是美国阿帕奇(Apache)软件基金会的一款轻量级Web应用服务器,Apache Tomcat是一个流行的开放源码的JSP应用服务器程序。该程序实现了对Servlet和JavaServer Page(JSP)的支持。

Apache Tomcat的某些示例脚本实现上存在输入验证漏洞,远程攻击者可能利用此漏洞在用户浏览器环境下执行恶意代码。

Apache Tomcat的示例Web应用程序中的某些JSP文件没有转义某些用户输入,允许远程攻击者通过包含有“;”字符的特制URI请求执行跨站脚本攻击,向用户浏览器会话注入并执行任意Web脚本或HTML代码。

Apache Tomcat 9.0.0.M1版本至9.0.0.17版本、8.5.0版本至8.5.39版本和7.0.0版本至7.0.93版本中存在跨站脚本漏洞。该漏洞源于WEB应用缺少对客户端数据的正确验证。攻击者可利用该漏洞执行客户端代码。SSI printenv命令回显用户提供的数据而不会转义,它很容易受到XSS的攻击。默认情况下禁用SSI。该printenv命令用于调试,不太可能出现在生产网站中。

漏洞查证网站:https://www.anquanke.com/vul/id/1615989
国家信息安全漏洞库:http://www.cnnvd.org.cn/

漏洞影响:

严重程度:低
供应商:Apache软件基金会

受影响的版本:
Apache Tomcat 9.0.0.M1至9.0.17
Apache Tomcat 8.5.0至8.5.39
Apache Tomcat 7.0.0至7.0.93
参考网站:https://lists.apache.org/thread.html/6e6e9eacf7b28fd63d249711e9d3ccd4e0a83f556e324aee37be5a8c@%3Cannounce.tomcat.apache.org%3E

漏洞修复

减轻:
受影响版本的用户应应用以下缓解措施之一:
-禁用SSI
-不要安装示例web应用程序
-升级到Apache Tomcat 9.0.18或更高版本
-升级到Apache Tomcat 8.5.40或更高版本
-升级到Apache Tomcat 7.0.94或更高版本

修复建议:http://tomcat.apache.org/security.html
Apache Tomcat 跨站脚本漏洞处理(CVE-2019-0221)_第1张图片
漏洞修复版本核查确认:
找到对应的版本系列,ctrl+F,搜索漏洞特征码,例如CVE-2019-0221
Apache Tomcat 跨站脚本漏洞处理(CVE-2019-0221)_第2张图片
可在上图中找到要解决的方案,升级到对应版本

Tomcat软件下载地址:http://tomcat.apache.org/security-9.html
Apache Tomcat 跨站脚本漏洞处理(CVE-2019-0221)_第3张图片
版本说明:

1)Core:是Tomcat正式的二进制发布版本,一般大家做开发或者学习的时候应该下载Core下的。

2)Deployer:是基于Tomcat的web应用的发布器,就是在把写好的JavaEE应用发布到Tomcat的时候可以使用Deployer来动态的发布。所以它不是真正的Tomcat二进制版本,它只是一个用以发布基于Tomcat的Web应用的发布工具而已。因此,大家在下载的时候不应该下载这个东西,除非想动态的发布Web应用到Tomcat中去。那么Deployer既然是用来发布Web应用到Tomcat中去的,那么它都能做些什么呢?这里有必要跟大家交代一下Tomcat中的Web应用发布的概念。

    发布:指的是把一个Web应用安装到Tomcat服务器中的过程。

    在Tomcat中发布Web应用可以有两种方式:

    1、静态发布:指的是在Tomcat未启动的时候,把做好的Web应用直接复制到Tomcat服务器中。

    2、动态发布:有两种情况

    2.1  指的是在Tomcat已经启动运行的情况下,通过Tomcat的自动部署功能动态操作已经发布的Web应用.

    2.2  指的是通过Tomcat Manager这个Web应用通过远程把做好的Web应用发布到正在运行的Tomcat中去。

Deployer的作用就在动态发布Web应用到Tomcat中去的时候体现出来的。

Deployer是一个命令行的工具,它可以编译、验证Web应用,还可以把Web应用的全部资源打包到War文件中。
3)EXtra:功能扩展版,针对特定功能的单独使用
4)Embedded:嵌入式版本

修复处理

1)下载对应版本后软件解压:

#tar -xzf apache-tomcat-7.0.96-deployer.tar.gz -C /usr/local/
# cd /usr/local/
#/usr/local/tomcat/bin/shutdown.sh   ##关闭服务
#mv /usr/local/tomcat7 /usr/local/tomcat7_old  ##备份旧版本tomcat
或Cp –r usr/local/tomcat7 /usr/local/tomcat7_old ##升级失败回退使用
#mv apache-tomcat-7.0.96 apache-tomcat  ##将解压后的改为tomcat默认路径
cp -rp ../../apache-tomcat_old/conf/server.xml ./   ##配置文件覆盖
cd /usr/local/tomcat7/webapps   ##进入删除自带项目示例及文档
rm -rf  host-manager
rm -rf examples
rm -rf manager/
rm -rf docs
mv webapps/ webapps-source ##修改自带的webapp
cp -pr ../apache-tomcat_old/webapps ./   ##将原项目webapp复制到该处
ll -d webapps   ##权限验证
./startup.sh  ##开启tomcat服务
tail -f ../logs/catalina.out  ##服务启动验证

在这里插入图片描述
Apache Tomcat 跨站脚本漏洞处理(CVE-2019-0221)_第4张图片

FAQ

1)如果你的tomcat是普通用户使用的,在root下升级后会出现权限不一致导致的问题,这是由系统权限引起的,可修改 catalina.sh
Apache Tomcat 跨站脚本漏洞处理(CVE-2019-0221)_第5张图片
最后升级前进行权限验证。

你可能感兴趣的:(安全相关)