添加殊字符導(dǎo)致暴露JSP源代碼文件
服務(wù)器漏洞是安全問題的起源,黑客對(duì)網(wǎng)站的攻擊也大多是從查找對(duì)方的漏洞開始的。所以只有了解自身的漏洞,網(wǎng)站管理人員才能采取相應(yīng)的對(duì)策,阻止外來的攻擊。下面介紹一下一些服務(wù)器(包括Web服務(wù)器和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/(.*) $1" target=_blank>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)致暴露JSP源代碼文件?
Unify eWave ServletExec 是一個(gè) Java/Java Servlet 引擎插件,主要用于 WEB 服務(wù)器,例如:Microsoft IIS, Apache, Netscape Enterprise 服務(wù)器等等。
當(dāng)一個(gè) HTTP 請(qǐng)求中添加下列字符之一,ServletExec 將返回 JSP源代碼文件。
成功的利用該漏洞將導(dǎo)致泄露指定的JSP文件的源代碼,例如:使用下面的任意一個(gè)URL請(qǐng)求將輸出指定的JSP源代碼:
1http://target/directory/jsp/file.jsp.
2)http://target/directory/jsp/file.jsp%2E
3http://target/directory/jsp/file.jsp+
4http://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)頁(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 可以僅僅返回"未找到文件"。如果使用了靜態(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è)空格字符。
Tomcat有哪些漏洞?
Tomcat 3.1 存在暴露網(wǎng)站路徑問題
Tomcat 3.1 是在 Apache 軟件環(huán)境下開發(fā)的一個(gè)支持 JSP 1.1 和 Servlets 2.2 的軟件。它存在一個(gè)安全問題當(dāng)發(fā)送一個(gè)不存在的 jsp 請(qǐng)求時(shí)會(huì)暴露網(wǎng)站上網(wǎng)頁(yè)的全路徑。
舉例:http://narco.guerrilla.sucks.co:8080/anything.jsp
結(jié)果顯示:
Error: 404
Location: /anything.jsp
JSP file "/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp" not found
解決方案:升級(jí)到新版本Tomcat 暴露JSP文件內(nèi)容
Java Server Pages (JSP)類型的文件是以''.jsp''擴(kuò)展名在Tomcat 上注冊(cè),Tomcat 是文件名大小寫敏感的,''.jsp''和''.JSP''是不同類型的文件擴(kuò)展名。如果提交有''.JSP''的鏈接給Tomcat,而Tomcat找不到''.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)用JSP頁(yè)面時(shí)將該文件的后綴改成大寫,這個(gè)JSP文件的源代碼將完全輸出到瀏覽器中(也許瀏覽器窗口中什么都沒有,這時(shí)你只需查看HTML源文件就可以發(fā)現(xiàn))。如此一來,網(wǎng)站的源代碼是不是都會(huì)暴露在互聯(lián)網(wǎng)上那?
不用擔(dān)心,解決方法很簡(jiǎn)單,把各種后綴的組合全部寫到Tomcat_Home\conf \web.xml里就可以了,這樣Tomcat會(huì)將不同后綴名的JSP分開對(duì)待,就不會(huì)泄露代碼了。
【編輯推薦】