tomcat 漏洞解决方案

Apache Tomcat表单认证用户名枚举漏洞
发布日期:2009-06-03
更新日期:2009-06-04
受影响系统:
    Apache Group Tomcat 6.0.x
    Apache Group Tomcat 5.5.x
    Apache Group Tomcat 4.1.x

不受影响系统:
    Apache Group Tomcat 6.0.20
    Apache Group Tomcat 5.5.28
    Apache Group Tomcat 4.1.40

Apache Tomcat是一个流行的开放源码的JSP应用服务器程序。

由于某些认证类中的不充分错误检查,如果远程攻击者向Tomcat服务器提交了非法URL编码的口令就可能通过返回判断是否存在所请求的用户名。如果基于表单的认证(j_security_check)使用了任意以下认证域就可以执行这种攻击:

* MemoryRealm
* DataSourceRealm
* JDBCRealm

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
POST /j_security_check HTTP/1.1
Host: localhost

j_username=tomcat&j_password=%

建议: 厂商补丁:

Apache Group
------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://svn.apache.org/viewvc?rev=747840&view=rev
http://svn.apache.org/viewvc?rev=781379&view=rev
http://svn.apache.org/viewvc?rev=781382&view=rev


Apache Tomcat RemoteFilterValve绕过安全限制漏洞
受影响系统:
    Apache Tomcat 5.5.0
    Apache Tomcat 4.1.0 - 4.1.31

不受影响系统:
    Apache Tomcat 5.5.1
    Apache Tomcat 4.1.32
Apache Tomcat在检查IP地址时存在同步问题,在极少的环境下,这可能允许非允许的IP地址绕过RemoteFilterValve过滤器值并访问受保护的内容。仅在使用调试器在两个线程之间强制特定的处理序列的情况下才可以利用这个漏洞。

建议:厂商补丁:
Apache
------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://jakarta.apache.org/tomcat/index.html


问题 远端HTTP服务器类型和版本信息泄漏



法 ㈠apache版本信息泄漏解决方法:
在配置文件Apache2.2/conf/httpd.conf中加入
ServerTokens Prod[uctOnly](等级[Prod,Major, Minor, Min, OS])
ServerSignature Off
重启 apache 现在 http 头里面只看到: Server: Apache[/2, /2.0, /2.0.41, /2.0.41 (Unix)]
㈡服务器类型泄漏解决办法:
Tomcat:
①方法一:修改ServerInfo.properties里的版本信息
Tomcat4\5:tomcat_home \server\lib\catalina.jar
org\apache\catalina\util\ServerInfo.properties
Tomcat6:tomcat_home \lib\catalina.jar
org\apache\catalina\util\ServerInfo.properties
操作:用WinRAR打开catalina.jar 找到ServerInfo.properties 解压并修改 再拖入即可。
②方法二:使用WEB容器捕获异常进行处理
在web.xml文件头部加上:
<error-page>
<exception-type>java.lang.Exception</exception-type><location>/system_error.jsp</location>
</error-page>
<error-page>
<error-code>404</error-code><location>/system_error.jsp</location>
</error-page>
<error-page>
<error-code>400</error-code><location>/system_error.jsp</location>
</error-page><error-page><error-code>500</error-code><location>/system_error.jsp</location>
</error-page>
问题 ① Apache MPM worker.c 远程拒绝服务漏洞。
Apache 2的worker模块在处理中止的TCP连接时存在内存泄漏,远程攻击者可以反复触发这种情况耗尽所有可用的内存,最终导致拒绝服务。
② Apache.htaccess本地PCRE整数溢出权限提升漏洞。
PCRE在处理字符类时存在缓冲区溢出漏洞,如果用户发送了codepoint大于255的超长UTF-8字符类的话,就可能触发这个溢出,导致执行任意指令。
③ Apache mod_imagemap和mod_imap模块跨站脚本漏洞。
Apache的mod_imagemap和mod_imap模块中没有正确地过滤某些用户输入,允许远程攻击者提交恶意的HTTP请求执行跨站脚本攻击。
④ Apache mod_rewrite模块单字节缓冲区溢出漏洞。
Apache的mod_rewrite模块在转义绝对URI主题时存在单字节缓冲区溢出漏洞,攻击者可能利用此漏洞在服务器上执行任意指令。mod_rewrite模块的escape_absolute_uri()函数分离LDAP URL中的令牌时,会导致在字符指针数组以外写入指向用户控制数据的指针,这样就可能完全控制受影响的主机。



法 这些问题都是由于Apache 自身的缺陷引起的。
解决方法:
① 打apache补丁可解决
② 升级apache到最新版本。
建议最好用升级apache到最新版本。

猜你喜欢

转载自ahead-zhan.iteye.com/blog/1134728