JSP腳本漏洞面面觀
更新時間:2007年01月16日 00:00:00 作者:
服務器漏洞是安全問題的起源,黑客對網站的攻擊也大多是從查找對方的漏洞開始的。所以只有了解自身的漏洞,網站管理人員才能采取相應的對策,阻止外來的攻擊。下面介紹一下一些服務器(包括Web服務器和JSP服務器)的常見漏洞。
Apache泄露重寫的任意文件漏洞是怎么回事?
在Apache1.2以及以后的版本中存在一個mod_rewrite模塊,它用來指定特殊URLS在網絡服務器文件系統(tǒng)上所映射的絕對路徑。如果傳送一個包含正確表達參數的重寫規(guī)則,攻擊者就可以查看目標主機上的任意文件。
下面舉例說明重寫規(guī)則指令(其中第一行只有是包含漏洞的):
RewriteRule /test/(.*) /usr/local/data/test-stuff/$1
RewriteRule /more-icons/(.*) /icons/$1
RewriteRule /go/(.*) http://www.apacheweek.com/$1
受影響的系統(tǒng):
1)Apache 1.3.12
2)Apache 1.3.11win32
3)Apache 1.2.x
不受影響系統(tǒng):Apache 1.3.13
怎樣解決在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文件的源代碼:
1)http://target/directory/jsp/file.jsp.
2)http://target/directory/jsp/file.jsp%2E
3)http://target/directory/jsp/file.jsp+
4)http://target/directory/jsp/file.jsp%2B
5)http://target/directory/jsp/file.jsp\
6)http://target/directory/jsp/file.jsp%5C
7)http://target/directory/jsp/file.jsp%20
8)http://target/directory/jsp/file.jsp%00
受影響的系統(tǒng):
1)Unify eWave ServletExec 3.0c
2)Sun Solaris 8.0
3)Microsoft Windows 98
4)Microsoft Windows NT 4.0
5)Microsoft Windows NT 2000
6)Linux kernel 2.3.x
7)IBM AIX 4.3.2
8)HP HP-UX 11.4
解決方案:
如果沒有使用任何靜態(tài)頁面或圖像,可以配置一個默認的 servlet,并將"/"映射到這個默認的 servlet。這樣當收到一個未映射到某個 servlet 的 URL 時,這個默認的servlet 就會被調用。在這種情況下,默認的 servlet 可以僅僅返回"未找到文件"。如果使用了靜態(tài)的頁面或圖像,仍然可以作這樣的配置,但是需要讓這個默認的servlet 處理對合法的靜態(tài)頁面和圖像的請求。
另一種可能就是將*.jsp+、*.jsp.和*.jsp\等映射到一個 servlet,而該servlet只是返回"未找到文件"。對于*.jsp%00和*.jsp%20這樣的情況,映射應以未經編碼的形式輸入。例如,對于*.jsp%20的映射應輸入"*.jsp "。注意%20被轉換成一個空格字符。
Tomcat有哪些漏洞?
Tomcat 3.1 存在暴露網站路徑問題
Tomcat 3.1 是在 Apache 軟件環(huán)境下開發(fā)的一個支持 JSP 1.1 和 Servlets 2.2 的軟件。它存在一個安全問題當發(fā)送一個不存在的 jsp 請求時會暴露網站上網頁的全路徑。
舉例:
http://narco.guerrilla.sucks.co:8080/anything.jsp
結果顯示:
Error: 404
Location: /anything.jsp
JSP file "/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp" not found
解決方案:升級到新版本
Tomcat 暴露JSP文件內容
Java Server Pages (JSP)類型的文件是以'.jsp'擴展名在Tomcat 上注冊,Tomcat 是文件名大小寫敏感的,'.jsp'和'.JSP'是不同類型的文件擴展名。如果提交有'.JSP'的鏈接給Tomcat,而Tomcat找不到'.JSP'就會以默認的'.text'文件類型來響應請求。因為在NT系統(tǒng)中大小寫文件名是非敏感的,所以被請求的文件會以文本的形式送出。
如果在UNIX服務器上會出現"file not found"的錯誤信息。
如何在windows下對Tomcat實施代碼保護
Tomcat的一些版本有泄露源代碼的漏洞,如果在瀏覽器中調用JSP頁面時將該文件的后綴改成大寫,這個JSP文件的源代碼將完全輸出到瀏覽器中(也許瀏覽器窗口中什么都沒有,這時你只需查看HTML源文件就可以發(fā)現)。如此一來,網站的源代碼是不是都會暴露在互聯(lián)網上那?
不用擔心,解決方法很簡單,把各種后綴的組合全部寫到Tomcat_Home\conf \web.xml里就可以了,這樣Tomcat會將不同后綴名的JSP分開對待,就不會泄露代碼了。
jsp
*.jsp
jsP
*.jsP
?lt;servlet-name>jSp
*.jSp
jSP
*.jSP
Jsp
*.Jsp
JsP
*.JsP
JSp
*.JSp
JSP
*.JSP
Allair Jrun漏洞有哪些漏洞?
Allair JRUN 非法讀取 WEB-INF 漏洞
在Allaire 的 JRUN 服務器 2.3版本中存在一個嚴重的安全漏洞。它允許一個攻擊者在 JRun 3.0 服務器中查看 WEB-INF 目錄。
如果用戶在提交 URL 請求時在,通過附加一個"/"使該 URL 成為畸形的 URL,這時 WEB-INF 下的所有子目錄將會暴露出來。攻擊者巧妙的利用該漏洞將能夠遠程獲得目標主機系統(tǒng)中 WEB-INF 目錄下的所有文件的讀取權限。
例如使用下面這個 URL 將會暴露 WEB-INF 下的所有文件:
http://site.running.jrun:8100//WEB-INF/
受影響的系統(tǒng):Allaire JRun 3.0
解決方案:下載并安裝補?。?nbsp;
Allaire patch jr233p_ASB00_28_29
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip
Windows 95/98/NT/2000 and Windows NT Alpha
Allaire patch jr233p_ASB00_28_29tar
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
UNIX/Linux patch - GNU gzip/tar
Allaire JRUN 2.3 查看任意文件漏洞
Allaire 的 JRUN 服務器 2.3上存在多重顯示代碼漏洞。該漏洞允許攻擊者在 WEB 服務器上查看根目錄下的任意文件的源代碼。
JRun 2.3 使用 Java Servlets 解析各種各樣類型的頁面(例如:HTML, JSP等等)?;趓ules.properties 和 servlets.properties 的文件設置,可能利用URL前綴"/servlet/"調用任何servlet。
它可能使用 Jrun 的 SSIFilter servlet 在目標系統(tǒng)上檢索任意的文件。下列 2 個例子顯示出能被用來檢索任意的文件的 URLs :
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../t est.jsp
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../../../../../../boot.ini
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../. ./../../../../winnt/repair/sam
http://jrun:8000/servlet/ssifilter/../../test.jsp
http://jrun:8000/servlet/ssifilter/../../../../../../../boot.ini
http://jrun:8000/servlet/ssifilter/../../../../../../../winnt/repair/sam._
注意:假設JRun在主機" jrun "上運行,端口8000。
受影響的系統(tǒng):Allaire JRun 2.3.x
解決方案:下載并安裝補丁:
Allaire patch jr233p_ASB00_28_29
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip
Windows 95/98/NT/2000 and Windows NT Alpha
Allaire patch jr233p_ASB00_28_29tar
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
UNIX/Linux patch - GNU gzip/tar
Allaire JRUN 2.3遠程執(zhí)行任意命令漏洞
Allaire 的 JRUN 服務器 2.3上存在一個安全漏洞,允許遠程用戶把在 WEB 服務器上的任意文件作為JSP代碼編譯/執(zhí)行。 如果URL請求的目標文件使用了前綴"/servlet/",則JSP解釋執(zhí)行功能被激活。這時在用戶請求的目標文件路徑中使用"../",就有可能訪問到 WEB 服務器上根目錄以外的文件。在目標主機上利用該漏洞請求用戶輸入產生的一個文件,將嚴重威脅到目標主機系統(tǒng)的安全。
Apache泄露重寫的任意文件漏洞是怎么回事?
在Apache1.2以及以后的版本中存在一個mod_rewrite模塊,它用來指定特殊URLS在網絡服務器文件系統(tǒng)上所映射的絕對路徑。如果傳送一個包含正確表達參數的重寫規(guī)則,攻擊者就可以查看目標主機上的任意文件。
下面舉例說明重寫規(guī)則指令(其中第一行只有是包含漏洞的):
RewriteRule /test/(.*) /usr/local/data/test-stuff/$1
RewriteRule /more-icons/(.*) /icons/$1
RewriteRule /go/(.*) http://www.apacheweek.com/$1
受影響的系統(tǒng):
1)Apache 1.3.12
2)Apache 1.3.11win32
3)Apache 1.2.x
不受影響系統(tǒng):Apache 1.3.13
怎樣解決在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文件的源代碼:
1)http://target/directory/jsp/file.jsp.
2)http://target/directory/jsp/file.jsp%2E
3)http://target/directory/jsp/file.jsp+
4)http://target/directory/jsp/file.jsp%2B
5)http://target/directory/jsp/file.jsp\
6)http://target/directory/jsp/file.jsp%5C
7)http://target/directory/jsp/file.jsp%20
8)http://target/directory/jsp/file.jsp%00
受影響的系統(tǒng):
1)Unify eWave ServletExec 3.0c
2)Sun Solaris 8.0
3)Microsoft Windows 98
4)Microsoft Windows NT 4.0
5)Microsoft Windows NT 2000
6)Linux kernel 2.3.x
7)IBM AIX 4.3.2
8)HP HP-UX 11.4
解決方案:
如果沒有使用任何靜態(tài)頁面或圖像,可以配置一個默認的 servlet,并將"/"映射到這個默認的 servlet。這樣當收到一個未映射到某個 servlet 的 URL 時,這個默認的servlet 就會被調用。在這種情況下,默認的 servlet 可以僅僅返回"未找到文件"。如果使用了靜態(tài)的頁面或圖像,仍然可以作這樣的配置,但是需要讓這個默認的servlet 處理對合法的靜態(tài)頁面和圖像的請求。
另一種可能就是將*.jsp+、*.jsp.和*.jsp\等映射到一個 servlet,而該servlet只是返回"未找到文件"。對于*.jsp%00和*.jsp%20這樣的情況,映射應以未經編碼的形式輸入。例如,對于*.jsp%20的映射應輸入"*.jsp "。注意%20被轉換成一個空格字符。
Tomcat有哪些漏洞?
Tomcat 3.1 存在暴露網站路徑問題
Tomcat 3.1 是在 Apache 軟件環(huán)境下開發(fā)的一個支持 JSP 1.1 和 Servlets 2.2 的軟件。它存在一個安全問題當發(fā)送一個不存在的 jsp 請求時會暴露網站上網頁的全路徑。
舉例:
http://narco.guerrilla.sucks.co:8080/anything.jsp
結果顯示:
Error: 404
Location: /anything.jsp
JSP file "/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp" not found
解決方案:升級到新版本
Tomcat 暴露JSP文件內容
Java Server Pages (JSP)類型的文件是以'.jsp'擴展名在Tomcat 上注冊,Tomcat 是文件名大小寫敏感的,'.jsp'和'.JSP'是不同類型的文件擴展名。如果提交有'.JSP'的鏈接給Tomcat,而Tomcat找不到'.JSP'就會以默認的'.text'文件類型來響應請求。因為在NT系統(tǒng)中大小寫文件名是非敏感的,所以被請求的文件會以文本的形式送出。
如果在UNIX服務器上會出現"file not found"的錯誤信息。
如何在windows下對Tomcat實施代碼保護
Tomcat的一些版本有泄露源代碼的漏洞,如果在瀏覽器中調用JSP頁面時將該文件的后綴改成大寫,這個JSP文件的源代碼將完全輸出到瀏覽器中(也許瀏覽器窗口中什么都沒有,這時你只需查看HTML源文件就可以發(fā)現)。如此一來,網站的源代碼是不是都會暴露在互聯(lián)網上那?
不用擔心,解決方法很簡單,把各種后綴的組合全部寫到Tomcat_Home\conf \web.xml里就可以了,這樣Tomcat會將不同后綴名的JSP分開對待,就不會泄露代碼了。
jsp
*.jsp
jsP
*.jsP
?lt;servlet-name>jSp
*.jSp
jSP
*.jSP
Jsp
*.Jsp
JsP
*.JsP
JSp
*.JSp
JSP
*.JSP
Allair Jrun漏洞有哪些漏洞?
Allair JRUN 非法讀取 WEB-INF 漏洞
在Allaire 的 JRUN 服務器 2.3版本中存在一個嚴重的安全漏洞。它允許一個攻擊者在 JRun 3.0 服務器中查看 WEB-INF 目錄。
如果用戶在提交 URL 請求時在,通過附加一個"/"使該 URL 成為畸形的 URL,這時 WEB-INF 下的所有子目錄將會暴露出來。攻擊者巧妙的利用該漏洞將能夠遠程獲得目標主機系統(tǒng)中 WEB-INF 目錄下的所有文件的讀取權限。
例如使用下面這個 URL 將會暴露 WEB-INF 下的所有文件:
http://site.running.jrun:8100//WEB-INF/
受影響的系統(tǒng):Allaire JRun 3.0
解決方案:下載并安裝補?。?nbsp;
Allaire patch jr233p_ASB00_28_29
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip
Windows 95/98/NT/2000 and Windows NT Alpha
Allaire patch jr233p_ASB00_28_29tar
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
UNIX/Linux patch - GNU gzip/tar
Allaire JRUN 2.3 查看任意文件漏洞
Allaire 的 JRUN 服務器 2.3上存在多重顯示代碼漏洞。該漏洞允許攻擊者在 WEB 服務器上查看根目錄下的任意文件的源代碼。
JRun 2.3 使用 Java Servlets 解析各種各樣類型的頁面(例如:HTML, JSP等等)?;趓ules.properties 和 servlets.properties 的文件設置,可能利用URL前綴"/servlet/"調用任何servlet。
它可能使用 Jrun 的 SSIFilter servlet 在目標系統(tǒng)上檢索任意的文件。下列 2 個例子顯示出能被用來檢索任意的文件的 URLs :
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../t est.jsp
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../../../../../../boot.ini
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../. ./../../../../winnt/repair/sam
http://jrun:8000/servlet/ssifilter/../../test.jsp
http://jrun:8000/servlet/ssifilter/../../../../../../../boot.ini
http://jrun:8000/servlet/ssifilter/../../../../../../../winnt/repair/sam._
注意:假設JRun在主機" jrun "上運行,端口8000。
受影響的系統(tǒng):Allaire JRun 2.3.x
解決方案:下載并安裝補丁:
Allaire patch jr233p_ASB00_28_29
http://download.allaire.com/jrun/jr233p_ASB00_28_29.zip
Windows 95/98/NT/2000 and Windows NT Alpha
Allaire patch jr233p_ASB00_28_29tar
http://download.allaire.com/jrun/jr233p_ASB00_28_29.tar.gz
UNIX/Linux patch - GNU gzip/tar
Allaire JRUN 2.3遠程執(zhí)行任意命令漏洞
Allaire 的 JRUN 服務器 2.3上存在一個安全漏洞,允許遠程用戶把在 WEB 服務器上的任意文件作為JSP代碼編譯/執(zhí)行。 如果URL請求的目標文件使用了前綴"/servlet/",則JSP解釋執(zhí)行功能被激活。這時在用戶請求的目標文件路徑中使用"../",就有可能訪問到 WEB 服務器上根目錄以外的文件。在目標主機上利用該漏洞請求用戶輸入產生的一個文件,將嚴重威脅到目標主機系統(tǒng)的安全。