在用JSP制作的電子商務網站多如牛毛。但是對於JSP網站而言,安全性真的能夠讓人放心嗎?面對層出不窮的黑客攻擊和病毒襲擊,JSP網站的服務器能夠比其他網站的服務器器更加安全嗎?前段時間,應朋友之邀,我對他們托管的三台服務器的主機進行了測試,發現了JSP網站存在的幾個問題。
入侵測試第一步:掃描
掃描是入侵的第一步,它可以讓你對即將入侵的目標有一個全面的了解。同時掃描還有可能發現掃描對象的漏洞,為入侵提供一個指導方向。
朋友的兩台服務器為Linux,一台為Windows系統,在路由器後面還有一台Cisco PIX 525對三台主機進行保護,只允許外部用戶連接不同主機的部分端口,例如80,25,110。
根據檢測,Cisco PIX防火牆過濾規則設置比較嚴密,基本上沒有多余端口允許外部用戶訪問。細致分析後,我發現,目標網絡的主機通過地址轉換來提供對外訪問,內部使用192.168.*.*地址段。
先不考慮那麼多,找個掃描軟件來看看主機的安全情況。我找來了X-Scan,在外部對這幾台主機進行了端口掃描之後,生成了一份關於端口的報表,發現其中有一個Tomcat服務器,解釋的自然就是JSP文件了。
小知識:
Tomcat Web服務器是一款開源的適合於各種平台的免費網絡服務器。eBay.com與Dell 計算機等知名網站都采用或者曾經采用Tomcat的container容器執行Servlet 與JSP。
看來,只能通過Web服務進行間接攻擊。首先檢查TCP 80端口的服務。我發現,新聞搜索的功能是由端口8080提供的,輸入http:// 202.103.*.168:8080/之後,得到了一個系統管理登錄頁面,簡單地測試了一下,輸入“test/test”作為“用戶名/口令”,似乎認證成功,但實際上並不能進入下一個頁面。
專家支招:對於掃描來說,它很容易暴露我們網站的弱勢方面。應對掃描,我們可以架設一個蜜罐來誤導掃描者,蜜罐可以讓系統偽裝成到處是漏洞,從而遮蔽真正存在的漏洞,也可以偽裝成沒有任何漏洞,讓入侵者不知道從何入手。
入侵測試第二步:漏洞嘗試
嘗試JSP各種已知漏洞,這個是在掃描結果中無法獲得任何有效信息指導入侵的情況下,被迫使用的方法。這種方法雖然效果不一定好,但是往往能夠起到意想不到的效果,從而讓入侵繼續下去。
我進行了JSP大小寫的測試,因為JSP對大小寫是敏感的,Tomcat只會將小寫的jsp後綴的文件當作是正常的JSP文件來執行,如果大寫了就會引起Tomcat將index.JSP當作是一個可以下載的文件讓客戶下載,若干測試後,我發現這個方法並不奏效,可能管理員已經在服務器軟件的網站上下載了最新的補丁。
我發現大部分的JSP應用程序在當前目錄下都會有一個WEB-INF目錄,這個目錄通常存放的是JavaBeans編譯後的class 文件,如果不給這個目錄設置正常的權限,所有的class就會曝光。
而采用JAD軟件對下載的class文件反編譯後,原始的Java文件甚至變量名都不會改變。如果網頁制作者開始把數據庫的用戶名密碼都寫在了Java代碼中,反編譯後,說不定還能看到數據庫的重要信息。那麼,怎麼得到這些文件呢?
Tomcat版本的缺省“/admin”目錄是很容易訪問的。輸入:http://202.103.*.168/admin/,管理員目錄赫然在列。默認情況下,“User Name”應該是admin,“Password”應該是空,輸入用戶和密碼後,並點擊“Login”按鈕,不能進入,陸續使用了幾個比較常見的密碼,也無濟於事。
默認情況下,Tomcat打開了目錄浏覽功能,而一般的管理員又很容易忽視這個問題。也就是說,當要求的資源直接映射到服務器上的一個目錄時,由於在目錄中缺少缺省的index.jsp等文件,Tomcat將不返回找不到資源的404錯誤,而是返回HTML格式的目錄列表。
想到了這點後,我打開剛才用X-Scan掃描後生成的報表文件,找到“安全漏洞及解決方案”欄目,看到了幾個可能會有CGI漏洞的目錄。在地址欄輸入其中之一,返回結果如圖1所示。
12下一頁閱讀全文