JSP漏洞大觀
發(fā)表時(shí)間:2024-06-05 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]綜述:服務(wù)器漏洞是安全問題的起源,黑客對(duì)網(wǎng)站的攻擊也大多是從查找對(duì)方的漏洞開始的。所以只有了解自身的漏洞,網(wǎng)站管理人員才能采取相應(yīng)的對(duì)策,阻止外來的攻擊。下面介紹一下一些服務(wù)器(包括Web服務(wù)器和JavaScript/" target="_blank">JSP服...
綜述:服務(wù)器漏洞是安全問題的起源,黑客對(duì)網(wǎng)站的攻擊也大多是從查找對(duì)方的漏洞開始的。所以只有了解自身的漏洞,網(wǎng)站管理人員才能采取相應(yīng)的對(duì)策,阻止外來的攻擊。下面介紹一下一些服務(wù)器(包括Web服務(wù)器和JavaScript/" target="_blank">JSP服務(wù)器)的常見漏洞。
Apache泄露重寫的任意文件漏洞是怎么回事?
在Apache1.2以及以后的版本中存在一個(gè)mod_rewrite模塊,它用來指定特殊URLS在網(wǎng)絡(luò)服務(wù)器文件系統(tǒng)上所映射的絕對(duì)路徑。如果傳送一個(gè)包含正確表達(dá)參數(shù)的重寫規(guī)則,攻擊者就可以查看目標(biāo)主機(jī)上的任意文件。
下面舉例說明重寫規(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請(qǐng)求中添加特殊字符導(dǎo)致暴露JavaScript/" target="_blank">JSP源代碼文件?
Unify eWave ServletExec 是一個(gè) Java/Java Servlet 引擎插件,主要用于 WEB 服務(wù)器,例如:Microsoft IIS, Apache, Netscape Enterprise 服務(wù)器等等。
當(dāng)一個(gè) HTTP 請(qǐng)求中添加下列字符之一,ServletExec 將返回 JavaScript/" target="_blank">JSP 源代碼文件。
.
成功的利用該漏洞將導(dǎo)致泄露指定的JavaScript/" target="_blank">JSP文件的源代碼,例如:使用下面的任意一個(gè)URL請(qǐng)求將輸出指定的JavaScript/" target="_blank">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)頁面或圖像,可以配置一個(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 可以僅僅返回"未找到文件"。如果使用了靜態(tài)的頁面或圖像,仍然可以作這樣的配置,但是需要讓這個(gè)默認(rèn)的servlet 處理對(duì)合法的靜態(tài)頁面和圖像的請(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è)空格字符。
Tomcat有哪些漏洞?
Tomcat 3.1 存在暴露網(wǎng)站路徑問題
Tomcat 3.1 是在 Apache 軟件環(huán)境下開發(fā)的一個(gè)支持 JavaScript/" target="_blank">JSP 1.1 和 Servlets 2.2 的軟件。它存在一個(gè)安全問題當(dāng)發(fā)送一個(gè)不存在的 jsp 請(qǐng)求時(shí)會(huì)暴露網(wǎng)站上網(wǎng)頁的全路徑。
舉例:
http://narco.guerrilla.sucks.co:8080/anything.jsp
結(jié)果顯示:
Error: 404
Location: /anything.jsp
JavaScript/" target="_blank">JSP file "/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp" not found
解決方案:升級(jí)到新版本
Tomcat 暴露JavaScript/" target="_blank">JSP文件內(nèi)容
Java Server Pages (JavaScript/" target="_blank">JSP)類型的文件是以'.jsp'擴(kuò)展名在Tomcat 上注冊(cè),Tomcat 是文件名大小寫敏感的,'.jsp'和'.JavaScript/" target="_blank">JSP'是不同類型的文件擴(kuò)展名。如果提交有'.JavaScript/" target="_blank">JSP'的鏈接給Tomcat,而Tomcat找不到'.JavaScript/" target="_blank">JSP'就會(huì)以默認(rèn)的'.text'文件類型來響應(yīng)請(qǐng)求。因?yàn)樵贜T系統(tǒng)中大小寫文件名是非敏感的,所以被請(qǐng)求的文件會(huì)以文本的形式送出。
如果在UNIX服務(wù)器上會(huì)出現(xiàn)"file not found"的錯(cuò)誤信息。
如何在windows下對(duì)Tomcat實(shí)施代碼保護(hù)
Tomcat的一些版本有泄露源代碼的漏洞,如果在瀏覽器中調(diào)用JavaScript/" target="_blank">JSP頁面時(shí)將該文件的后綴改成大寫,這個(gè)JavaScript/" target="_blank">JSP文件的源代碼將完全輸出到瀏覽器中(也許瀏覽器窗口中什么都沒有,這時(shí)你只需查看HTML源文件就可以發(fā)現(xiàn))。如此一來,網(wǎng)站的源代碼是不是都會(huì)暴露在互聯(lián)網(wǎng)上那?
不用擔(dān)心,解決方法很簡(jiǎn)單,把各種后綴的組合全部寫到Tomcat_Home\conf \web.xml里就可以了,這樣Tomcat會(huì)將不同后綴名的JavaScript/" target="_blank">JSP分開對(duì)待,就不會(huì)泄露代碼了。
jsp *.jsp
jsP *.jsP
?lt;servlet-name>jSp *.jSp
jSP *.jSP
Jsp *.Jsp
JsP *.JsP
JavaScript/" target="_blank">JSp *.JavaScript/" target="_blank">JSp
JavaScript/" target="_blank">JSP *.JavaScript/" target="_blank">JSP
|
Allair Jrun漏洞有哪些漏洞?
Allair JRUN 非法讀取 WEB-INF 漏洞
在Allaire 的 JRUN 服務(wù)器 2.3版本中存在一個(gè)嚴(yán)重的安全漏洞。它允許一個(gè)攻擊者在 JRun 3.0 服務(wù)器中查看 WEB-INF 目錄。
如果用戶在提交 URL 請(qǐng)求時(shí)在,通過附加一個(gè)"/"使該 URL 成為畸形的 URL,這時(shí) WEB-INF 下的所有子目錄將會(huì)暴露出來。攻擊者巧妙的利用該漏洞將能夠遠(yuǎn)程獲得目標(biāo)主機(jī)系統(tǒng)中 WEB-INF 目錄下的所有文件的讀取權(quán)限。
例如使用下面這個(gè) URL 將會(huì)暴露 WEB-INF 下的所有文件:
http://site.running.jrun:8100//WEB-INF/
受影響的系統(tǒng):Allaire JRun 3.0
解決方案:下載并安裝補(bǔ)。
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 |
[page_break] Allaire JRUN 2.3 查看任意文件漏洞
Allaire 的 JRUN 服務(wù)器 2.3上存在多重顯示代碼漏洞。該漏洞允許攻擊者在 WEB 服務(wù)器上查看根目錄下的任意文件的源代碼。
JRun 2.3 使用 Java Servlets 解析各種各樣類型的頁面(例如:HTML, JavaScript/" target="_blank">JSP等等);趓ules.properties 和 servlets.properties 的文件設(shè)置,可能利用URL前綴"/servlet/"調(diào)用任何servlet。
它可能使用 Jrun 的 SSIFilter servlet 在目標(biāo)系統(tǒng)上檢索任意的文件。下列 2 個(gè)例子顯示出能被用來檢索任意的文件的 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._ |
注意:假設(shè)JRun在主機(jī)" jrun "上運(yùn)行,端口8000。
受影響的系統(tǒng):Allaire JRun 2.3.x
解決方案:下載并安裝補(bǔ)丁:
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遠(yuǎn)程執(zhí)行任意命令漏洞
Allaire 的 JRUN 服務(wù)器 2.3上存在一個(gè)安全漏洞,允許遠(yuǎn)程用戶把在 WEB 服務(wù)器上的任意文件作為JavaScript/" target="_blank">JSP代碼編譯/執(zhí)行。 如果URL請(qǐng)求的目標(biāo)文件使用了前綴"/servlet/",則JavaScript/" target="_blank">JSP解釋執(zhí)行功能被激活。這時(shí)在用戶請(qǐng)求的目標(biāo)文件路徑中使用"../",就有可能訪問到 WEB 服務(wù)器上根目錄以外的文件。在目標(biāo)主機(jī)上利用該漏洞請(qǐng)求用戶輸入產(chǎn)生的一個(gè)文件,將嚴(yán)重威脅到目標(biāo)主機(jī)系統(tǒng)的安全。
例如:
http://jrun:8000/servlet/com.livesoftware.jrun.plugins.jsp.JavaScript/" target="_blank">JSP/../../path/to /temp.txt
http://jrun:8000/servlet/jsp/../../path/to/temp.txt
受影響的系統(tǒng):Allaire JRun 2.3.x
解決方案:下載并安裝補(bǔ)丁:
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 |
JRun 2.3.x 范例文件暴露站點(diǎn)安全信息
JRun 2.3.x 在 JRUN_HOME/servlets 目錄下有一些 servlet 范例文件,這個(gè)目錄是 JRun 2.3.x 用于加載和執(zhí)行 servlets 文件。所有擴(kuò)展名為 ".Java" 或 "class" 的文件必須被刪除,這是因?yàn)檫@些文件會(huì)暴露站點(diǎn)的安全信息。例如:
http://www.xxx.xxx/servlet/SessionServlet 會(huì)暴露當(dāng)前服務(wù)器保持的HTTP連接信息。JRUN_HOME/jsm-default/services/jws/htdocs 目錄下的內(nèi)容也應(yīng)被刪除掉。這個(gè)目錄保存有演示服務(wù)器功能的 '.jsp' 文件,其中一些文件牽涉到訪問服務(wù)器文件系統(tǒng)和暴露服務(wù)器設(shè)置的問題。例如對(duì)文件 "viewsource.jsp" 的路徑檢查是默認(rèn)關(guān)閉的,它可被用于訪問服務(wù)器文件系統(tǒng)。
解決方案:
1)安裝 2.3.3 service pack
2)從服務(wù)器上刪除所有的說明文檔、演示編碼、范例和教材,包括安裝 JRun 2.3.x 時(shí)存放于 JRUN_HOME/servlets 目錄和JRUN_HOME/jsm-default/services/jws/htdocs 目錄里的文檔。
相關(guān)站點(diǎn):http://www.allaire.com/
IBM WebSphere Application Server有哪些漏洞?
1、IBM WebSphere Application Server 3.0.2 存在暴露源代碼漏洞
IBM WebSphere Application Server 允許攻擊者查看 Web server 根目錄以上的所有文件。IBM WebSphere 使用 Java Servlets 處理多種頁面類型的分析(如 HTML, JavaScript/" target="_blank">JSP, JHTML, 等等)。In addition 不同的 servlets 對(duì)不同的頁面進(jìn)行處理,如果一個(gè)請(qǐng)求的文件是未進(jìn)行注冊(cè)管理的,WebSphere 會(huì)使用一個(gè)默認(rèn)的 servlet 作調(diào)用。如果文件路徑以"/servlet/file/"作開頭這個(gè)默認(rèn)的 servlet 會(huì)被調(diào)用這個(gè)請(qǐng)求的文件會(huì)未被分析或編譯就顯示出來。
受影響系統(tǒng):IBM WebSphere 3.0.2 的所有版本
舉例:
如果一個(gè)請(qǐng)求文件的 URL 為 "login.jsp":: http://site.running.websphere/login.jsp那么訪問 http://site.running.websphere/servlet/file/login.jsp將看到這個(gè)文件的源代碼。
解決方案:下載并安裝補(bǔ)丁
http://www-4.ibm.com/software/webservers/appserv/efix.html
相關(guān)站點(diǎn):http://www-4.ibm.com/software/webservers/appserv/
IBM WebSphere Application Server 暴露JavaScript/" target="_blank">JSP文件內(nèi)容
Java Server Pages (JavaScript/" target="_blank">JSP)類型的文件是以'.jsp'擴(kuò)展名在WebSphere Application Serve 上注冊(cè),WebSphere 是文件名大小寫敏感的,'.jsp'和'.JavaScript/" target="_blank">JSP'是不同類型的文件擴(kuò)展名。如果提交有'.JavaScript/" target="_blank">JSP'的鏈接給WebSphere,而WebSphere找不到'.JavaScript/" target="_blank">JSP'就會(huì)以默認(rèn)的'.text'文件類型來響應(yīng)請(qǐng)求。因?yàn)樵贜T系統(tǒng)中大小寫文件名是非敏感的,所以被請(qǐng)求的文件會(huì)以文本的形式送出。
如果在UNIX服務(wù)器上會(huì)出現(xiàn)"file not found"的錯(cuò)誤信息。
解決方案:點(diǎn)擊此處下載補(bǔ)丁
相關(guān)站點(diǎn):http://www-4.ibm.com/software/webservers/appserv/efix.html
BEA WebLogic有哪些暴露源代碼漏洞?
受影響版本:
所有系統(tǒng)上的
BEA WebLogic Enterprise 5.1.x BEA WebLogic Server and Express 5.1.x BEA WebLogic Server and Express 4.5.x BEA WebLogic Server and Express 4.0.x BEA WebLogic Server and Express 3.1.8 |
這個(gè)漏洞使攻擊者能讀取 Web 目錄下所有文件的源代碼。
WebLogic 依賴四個(gè)主要 Java Servlets to 服務(wù)不同類型的文件。這些 servlets 是:
1)FileServlet - for 簡(jiǎn)單 HTML 頁面
2)SSIServlet - for Server Side Includes 頁面
3)PageCompileServlet - for JHTML 頁面
4)JavaScript/" target="_blank">JSPServlet - for Java Server 頁面
看著weblogic.properties 文件, 這兒是各個(gè) servlets 的注冊(cè)值:
1)weblogic.httpd.register.file=weblogic.servlet.FileServlet
2)weblogic.httpd.register.*.shtml=weblogic.servlet.ServerSideIncludeServlet
3)weblogic.httpd.register.*.jhtml=weblogic.servlet.jhtmlc.PageCompileServlet
4)weblogic.httpd.register.*.jsp=weblogic.servlet.JavaScript/" target="_blank">JSPServlet
更多的 weblogic.properties 文件, 如果一個(gè)請(qǐng)求文件是沒有注冊(cè)管理的,那么就會(huì)調(diào)用一個(gè)默認(rèn)的 servlet 。以下是展示默認(rèn)的 servlet 是如何注冊(cè)的。
# Default servlet registration # ------------------------------------------------ # Virtual name of the default servlet if no matching servlet # is found weblogic.httpd.defaultServlet=file |
因此如果 URL 中的文件路徑開頭為 "/file/" , 將會(huì)引致 WebLogic 調(diào)用默認(rèn)的 servlet, 那將會(huì)使網(wǎng)頁未加分析和編譯而直接顯示。
論證:
只要在想看的文件原來的 URL 路徑之前加入 "/file/" 就會(huì)讓文件未經(jīng)分析和編譯,直接暴露源代碼。如:http://site.running.weblogic/login.jsp ,那么只要訪問 http://site.running.weblogic/file/login.jsp 就會(huì)在 WEB 瀏覽器里看到文件的內(nèi)容。
以下是使用方法:
1. 通過強(qiáng)制使用 SSIServlet 查看未分析的頁面 :
服務(wù)器站點(diǎn)通過 WebLogic 中的 SSIServlet 處理頁面,它在weblogic.properties 文件中注冊(cè)以下信息:weblogic.httpd.register.*.shtml= weblogic.servlet.ServerSideIncludeServlet
通過 URL 使用 SSIServlet 自動(dòng)處理通配符 (*) 。因此 如果文件路徑開頭為 /*.shtml/,將強(qiáng)制文件由 SSIServlet 處理。如果使用其它文件類型如 .jsp 和 .jhtml, 就能查看未分析的 jsp 和 jhtml 代碼。舉例:http://www.xxx.com/*.shtml/login.jsp
2. 通過強(qiáng)制使用 FileServlet 查看未分析的頁面 :
WebLogic 使用 FileServlet 配置 ConsoleHelp servlet ,在weblogic.properties 文件的以下內(nèi)容可得知:
# For Console help. Do not modify. weblogic.httpd.register.ConsoleHelp= weblogic.servlet.FileServlet weblogic.httpd.initArgs.ConsoleHelp= \defaultFilename=/weblogic/admin/help/NoContent.html weblogic.allow.execute.weblogic.servlet.ConsoleHelp=everyone |
因此如果文件路徑以 /ConsoleHelp/ 開頭將導(dǎo)致 WebLogic 使用 FileServlet,使未分析或編譯的文件作頁面顯示出來,舉例:http://www.xxx.com/ConsoleHelp/login.jsp
解決方案:
不要使用示例中的設(shè)置方法設(shè)置 FileServlet 。這可能會(huì)讓你的 JavaScript/" target="_blank">JSP/JHTML 文件的源代碼暴露出來。請(qǐng)查看在線文檔:
http://www.weblogic.com/docs51/admindocs/http.html#file
示例的 registrations 如下:
weblogic.httpd.register.file=weblogic.servlet.FileServlet
weblogic.httpd.initArgs.file=defaultFilename=index.html
weblogic.httpd.defaultServlet=file
有兩種方法可以避免這個(gè)問題:
。1)注冊(cè)那些文件 servlet 使用隨機(jī)用戶名,加大猜測(cè)難度。例如使用象這樣注冊(cè)文件 servlet 為 12foo34:
weblogic.httpd.register.12foo34=weblogic.servlet.FileServlet
weblogic.httpd.initArgs.12foo34=defaultFilename=index.html
weblogic.httpd.defaultServlet=12foo34
。2)注冊(cè)文件 servlet 使用 wild cards 聲明你將使用所有這些文件擴(kuò)展名作服務(wù)。舉例注冊(cè)文件 servlet 為 .html 文件服務(wù):
weblogic.httpd.register.*.html=weblogic.servlet.FileServlet
weblogic.httpd.initArgs.*.html=defaultFilename=index.html
weblogic.httpd.defaultServlet=*.html
使用上面的方法重復(fù)加入以下類型的文件 *.gif, *.jpg, *.pdf, *.txt, etc.
注意:這些信息是備有證明在 BEA WebLogic Server and Express 說明檔的:http://www.weblogic.com/docs51/admindocs/lockdown.html
另:請(qǐng)留意新版本并升級(jí)吧。