Java应用服务器 Apache Tomcat 再爆严重安全漏洞
fmms 13年前
<p><a href="http://www.open-open.com/open12123.htm " target="_blank"><strong>Tomcat</strong> </a>服务器是一个免费的开放源代码的Web 应用服务器。</p> <p>Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。</p> <p>Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。<br /> <br /> Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。</p> <p>这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和 JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。<br /> <br /> <img title="Java应用服务器 Apache Tomcat 再爆严重安全漏洞" border="0" alt="Java应用服务器 Apache Tomcat 再爆严重安全漏洞" src="https://simg.open-open.com/show/38b694d95feb6c57a67a30ea4b07d4a5.jpg" width="146" height="92" /><br /> </p> <p><span style="text-align:left;widows:2;text-transform:none;background-color:#f7f7f7;text-indent:0px;font:14px/25px Helvetica,Tahoma,Arial,sans-serif;white-space:normal;orphans:2;letter-spacing:normal;word-spacing:0px;" class="Apple-style-span"><strong style="font-weight:bold;">Apache Tomcat 再次爆出安全漏洞:</strong><span class="Apple-converted-space"> <br /> </span></span><br /> <span style="text-align:left;widows:2;text-transform:none;background-color:#f7f7f7;text-indent:0px;font:14px/25px Helvetica,Tahoma,Arial,sans-serif;white-space:normal;orphans:2;letter-spacing:normal;word-spacing:0px;" class="Apple-style-span">漏洞:<strong style="font-weight:bold;">CVE-2011-3190 Apache Tomcat 绕过验证和信息泄露</strong><span class="Apple-converted-space"> </span><br /> 严重性:<strong style="font-weight:bold;">严重</strong><span class="Apple-converted-space"> </span><br /> 公布方:Apache软件基金会<span class="Apple-converted-space"> </span><br /> 受影响的版本:<span class="Apple-converted-space"> </span><br /> <br /> </span></p> <ul style="padding-bottom:0px;margin:0px 0px 1.5em;padding-left:0px;padding-right:0px;padding-top:0px;"> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">Tomcat 7.0.0 ~ 7.0.20的所有版本</li> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">Tomcat 6.0.0 ~ 6.0.33的所有版本</li> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">Tomcat 5.5.0 ~ 5.5.33的所有版本</li> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">早期的已不再提供支持的版本也可能受影响</li> </ul> Apache Tomcat支持AJP协议,用来通过反向代理到Tomcat的请求和相关的数据,AJP协议的作用是,当一个请求包含请求主体时,一个未经允许的、包含请求主体首部分(或可能所有的)的AJP消息被发送到Tomcat。在某些情况下,Tomcat会把这个消息当作一个新的请求来处理,而不会当作请求主体。这可能导致攻击者完全控制AJP消息,允许攻击者: <span class="Apple-converted-space"> </span> <br /> <br /> <ul style="padding-bottom:0px;margin:0px 0px 1.5em;padding-left:0px;padding-right:0px;padding-top:0px;"> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">插入已验证用户的名字</li> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">插入任何客户端的IP地址(可能绕过任何客户端IP地址的过滤)</li> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">导致用户之间的响应混乱</li> </ul> 下面的AJP连接器实现 <strong style="font-weight:bold;">不会受到影响</strong>: <span class="Apple-converted-space"> </span> <br /> <br /> <ul style="padding-bottom:0px;margin:0px 0px 1.5em;padding-left:0px;padding-right:0px;padding-top:0px;"> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">org.apache.jk.server.JkCoyoteHandler (5.5.x - default, 6.0.x - default)</li> </ul> 下面的AJP连接器实现 <strong style="font-weight:bold;">会受到影响</strong>: <span class="Apple-converted-space"> </span> <br /> <br /> <ul style="padding-bottom:0px;margin:0px 0px 1.5em;padding-left:0px;padding-right:0px;padding-top:0px;"> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">org.apache.coyote.ajp.AjpProtocol (6.0.x, 7.0.x - default)</li> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">org.apache.coyote.ajp.AjpNioProtocol (7.0.x)</li> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">org.apache.coyote.ajp.AjpAprProtocol (5.5.x, 6.0.x, 7.0.x)</li> </ul> 此外,这个问题只适用于以下都为真的情况: <span class="Apple-converted-space"> </span> <br /> <br /> <ul style="padding-bottom:0px;margin:0px 0px 1.5em;padding-left:0px;padding-right:0px;padding-top:0px;"> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">POST请求被接受</li> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">请求主体没有被处理</li> </ul> 举例:参见 <span class="Apple-converted-space"> </span> <a style="color:#006699;text-decoration:underline;" href="/misc/goto?guid=4958188315676838478" target="_blank">https://issues.apache.org/bugzilla/show_bug.cgi?id=51698</a> <span class="Apple-converted-space"> </span> <br /> <br /> <strong style="font-weight:bold;">解决措施:</strong> <span class="Apple-converted-space"> </span> <br /> <br /> <ul style="padding-bottom:0px;margin:0px 0px 1.5em;padding-left:0px;padding-right:0px;padding-top:0px;"> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">升级Apache Tomcat到已经修复此问题的版本。</li> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">安装相应的补丁:</li> - 7.0.x <span class="Apple-converted-space"> </span> <a style="color:#006699;text-decoration:underline;" href="http://svn.apache.org/viewvc?rev=1162958&view=rev" target="_blank">http://svn.apache.org/viewvc?rev=1162958&view=rev</a> <span class="Apple-converted-space"> </span> <br /> - 6.0.x <span class="Apple-converted-space"> </span> <a style="color:#006699;text-decoration:underline;" href="http://svn.apache.org/viewvc?rev=1162959&view=rev" target="_blank">http://svn.apache.org/viewvc?rev=1162959&view=rev</a> <span class="Apple-converted-space"> </span> <br /> - 5.5.x <span class="Apple-converted-space"> </span> <a style="color:#006699;text-decoration:underline;" href="http://svn.apache.org/viewvc?rev=1162960&view=rev" target="_blank">http://svn.apache.org/viewvc?rev=1162960&view=rev</a> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">配置反向代理和Tomcat AJP连接器,使用requiredSecret属性。</li> <li style="padding-bottom:0px;margin:0px 0px 0.25em 30px;padding-left:0px;padding-right:0px;padding-top:0px;">使用org.apache.jk.server.JkCoyoteHandler AJP连接器(不适用于 Tomcat 7.0.x)</li> </ul> VIA <span class="Apple-converted-space"> </span> <a style="color:#006699;text-decoration:underline;" href="/misc/goto?guid=4958188318787837081" target="_blank">apache.org</a> <span class="Apple-converted-space"> </span> <br /> 本文转载自: <a href="/misc/goto?guid=4958188319525075817" rel="nofollow">http://www.iteye.com/news/22650</a> <br />