Apache Tomcat 信息泄露及远程代码执行漏洞分析与防护

攻防实验室 赛博朔方 


背景介绍
       Apache和Tomcat都是WEB网络服务器,一般Apache是静态解析,tomcat是java应用服务器,动态解析jsp、php等,是一个容器(servlet),可以独立于apache运行。打个比方:Apache是一辆车,上面可以装东西,比如html等;但不能装水,要装水必须要有容器(桶),而这个桶也可以不放在车上,这个就是Tomcat。


漏洞概述

      2017年9月19日,Apache Tomcat官方 修复了2个严重级别的漏洞, 分别为: 信息泄露漏洞(CVE-2017-12616)、远程代码执行漏洞(CVE-2017-12615)。在一定的条件下,通过以上两个漏洞可在用户服务器上执行任意代码,从而导致数据泄露或获取服务器权限,存在高安全风险。
CVE-2017-12616:信息泄露漏洞 
      当 Tomcat 中使用了 VirtualDirContext 时,攻击者将能通过发送精心构造的恶意请求,绕过设置的相关安全限制,或是获取到由 VirtualDirContext 提供支持资源的 JSP 源代码。
远程代码执行漏洞(CVE-2017-12615)
      如果Apache Tomcat服务器上启用了HTTP PUT请求方法(将web.xml中 readonly 初始化参数由默认值设置为 false),则可能存在远程代码执行漏洞。攻击者可以通过该漏洞上传jsp文件。


攻击面影响

影响面
      该漏洞利用的前提条件需要手动开启readOnly功能,以支持上传操作,在Apache tomcat 7.X版本默认配置的情况下是无法成功利用漏洞,从实际测试来看,漏洞危害性并没有那么高。
      CVE-2017-12615漏洞利用需要在Windows环境,且需要将 readonly 初始化参数由默认值设置为 false,经过实际测试,Tomcat 7.x版本内web.xml配置文件内默认配置无readonly参数,需要手工添加,默认配置条件下不受此漏洞影响。
      CVE-2017-12616漏洞需要在server.xml文件配置VirtualDirContext参数,经过实际测试,Tomcat 7.x版本内默认配置无VirtualDirContext参数,需要手工添加,默认配置条件下不受此漏洞影响。




影响版本:
信息泄露漏洞(CVE-2017-12616)影响范围:Apache Tomcat 7.0.0 – 7.0.80
远程代码执行漏洞(CVE-2017-12615)影响范围:Apache Tomcat 5.x – 9.


修复建议
      根据业务评估配置conf/web.xml文件的readOnly值为Ture或注释参数,禁用PUT方法并重启tomcat服务,临时规避安全风险;注意: 如果禁用PUT方法,对于依赖PUT方法的应用,可能导致业务失效。
建议用户尽快升级到最新版本,官方已经发布了7.0.81版本修复了两个漏洞。


WEB安全最佳实践

如何知道自己网站使用了哪些http方法?


查看响应的 Allow: GET, HEAD, POST, OPTIONS,TRACE

禁用不必要的http方法


IIS
IIS默认拒绝PUT和DELETE请求,如果使用了不安全的方法,建议禁用webDAV模块。

Apache
<Location /> 
仅允许GET和POST方法,修改后重启服务。
<LimitExcept GET POST > 
  Order Allow,Deny 
  Deny from all 
</LimitExcept> 
</Location>

Tomcat
修改web.xml配置,增加以下内容,并重启tomcat服务:
<security-constraint>  
   <web-resource-collection>  
      <url-pattern>/*</url-pattern>  
      <http-method>PUT</http-method>  
<http-method>DELETE</http-method>  
<http-method>HEAD</http-method> 
<http-method>OPTIONS</http-method>  
<http-method>TRACE</http-method>  
   </web-resource-collection>  
   <auth-constraint>  
   </auth-constraint>  
 </security-constraint>  
 <login-config>  
   <auth-method>BASIC</auth-method>  
 </login-config>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值