程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 在HTTP請求中添加特殊字符導致暴露JSP源代碼文件

在HTTP請求中添加特殊字符導致暴露JSP源代碼文件

編輯:關於JSP

涉及程序:
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被轉換成一個空格字符。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved