入侵JSP網(wǎng)站服務(wù)器
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-08 19:37:02 作者:佚名
我要評論
在用JSP制作的電子商務(wù)網(wǎng)站多如牛毛。但是對于JSP網(wǎng)站而言,安全性真的能夠讓人放心嗎?面對層出不窮的黑客攻擊和病毒襲擊,JSP網(wǎng)站的服務(wù)器能夠比其他網(wǎng)站的服務(wù)器器更加安全嗎?前段時間,應(yīng)朋友之邀,我對他們托管的三臺服務(wù)器的主機(jī)進(jìn)行了測試,發(fā)現(xiàn)了JSP網(wǎng)站存在的幾
在用JSP制作的電子商務(wù)網(wǎng)站多如牛毛。但是對于JSP網(wǎng)站而言,安全性真的能夠讓人放心嗎?面對層出不窮的黑客攻擊和病毒襲擊,JSP網(wǎng)站的服務(wù)器能夠比其他網(wǎng)站的服務(wù)器器更加安全嗎?前段時間,應(yīng)朋友之邀,我對他們托管的三臺服務(wù)器的主機(jī)進(jìn)行了測試,發(fā)現(xiàn)了JSP網(wǎng)站存在的幾個問題。
入侵測試第一步:掃描
掃描是入侵的第一步,它可以讓你對即將入侵的目標(biāo)有一個全面的了解。同時掃描還有可能發(fā)現(xiàn)掃描對象的漏洞,為入侵提供一個指導(dǎo)方向。
朋友的兩臺服務(wù)器為Linux,一臺為Windows系統(tǒng),在路由器后面還有一臺Cisco PIX 525對三臺主機(jī)進(jìn)行保護(hù),只允許外部用戶連接不同主機(jī)的部分端口,例如80,25,110。
根據(jù)檢測,Cisco PIX防火墻過濾規(guī)則設(shè)置比較嚴(yán)密,基本上沒有多余端口允許外部用戶訪問。細(xì)致分析后,我發(fā)現(xiàn),目標(biāo)網(wǎng)絡(luò)的主機(jī)通過地址轉(zhuǎn)換來提供對外訪問,內(nèi)部使用192.168.*.*地址段。
先不考慮那么多,找個掃描軟件來看看主機(jī)的安全情況。我找來了X-Scan,在外部對這幾臺主機(jī)進(jìn)行了端口掃描之后,生成了一份關(guān)于端口的報表,發(fā)現(xiàn)其中有一個Tomcat服務(wù)器,解釋的自然就是JSP文件了。
小知識:
Tomcat Web服務(wù)器是一款開源的適合于各種平臺的免費網(wǎng)絡(luò)服務(wù)器。eBay.com與Dell 計算機(jī)等知名網(wǎng)站都采用或者曾經(jīng)采用Tomcat的container容器執(zhí)行Servlet 與JSP。
看來,只能通過Web服務(wù)進(jìn)行間接攻擊。首先檢查TCP 80端口的服務(wù)。我發(fā)現(xiàn),新聞搜索的功能是由端口8080提供的,輸入http:// 202.103.*.168:8080/之后,得到了一個系統(tǒng)管理登錄頁面,簡單地測試了一下,輸入“test/test”作為“用戶名/口令”,似乎認(rèn)證成功,但實際上并不能進(jìn)入下一個頁面。
專家支招:對于掃描來說,它很容易暴露我們網(wǎng)站的弱勢方面。應(yīng)對掃描,我們可以架設(shè)一個蜜罐來誤導(dǎo)掃描者,蜜罐可以讓系統(tǒng)偽裝成到處是漏洞,從而遮蔽真正存在的漏洞,也可以偽裝成沒有任何漏洞,讓入侵者不知道從何入手。
入侵測試第二步:漏洞嘗試
嘗試JSP各種已知漏洞,這個是在掃描結(jié)果中無法獲得任何有效信息指導(dǎo)入侵的情況下,被迫使用的方法。這種方法雖然效果不一定好,但是往往能夠起到意想不到的效果,從而讓入侵繼續(xù)下去。
我進(jìn)行了JSP大小寫的測試,因為JSP對大小寫是敏感的,Tomcat只會將小寫的jsp后綴的文件當(dāng)作是正常的JSP文件來執(zhí)行,如果大寫了就會引起Tomcat將index.JSP當(dāng)作是一個可以下載的文件讓客戶下載,若干測試后,我發(fā)現(xiàn)這個方法并不奏效,可能管理員已經(jīng)在服務(wù)器軟件的網(wǎng)站上下載了最新的補(bǔ)丁。
我發(fā)現(xiàn)大部分的JSP應(yīng)用程序在當(dāng)前目錄下都會有一個WEB-INF目錄,這個目錄通常存放的是JavaBeans編譯后的class 文件,如果不給這個目錄設(shè)置正常的權(quán)限,所有的class就會曝光。
而采用JAD軟件對下載的class文件反編譯后,原始的Java文件甚至變量名都不會改變。如果網(wǎng)頁制作者開始把數(shù)據(jù)庫的用戶名密碼都寫在了Java代碼中,反編譯后,說不定還能看到數(shù)據(jù)庫的重要信息。那么,怎么得到這些文件呢?
Tomcat版本的缺省“/admin”目錄是很容易訪問的。輸入:http://202.103.*.168/admin/,管理員目錄赫然在列。默認(rèn)情況下,“User Name”應(yīng)該是admin,“Password”應(yīng)該是空,輸入用戶和密碼后,并點擊“Login”按鈕,不能進(jìn)入,陸續(xù)使用了幾個比較常見的密碼,也無濟(jì)于事。
默認(rèn)情況下,Tomcat打開了目錄瀏覽功能,而一般的管理員又很容易忽視這個問題。也就是說,當(dāng)要求的資源直接映射到服務(wù)器上的一個目錄時,由于在目錄中缺少缺省的index.jsp等文件,Tomcat將不返回找不到資源的404錯誤,而是返回HTML格式的目錄列表。
想到了這點后,我打開剛才用X-Scan掃描后生成的報表文件,找到“安全漏洞及解決方案”欄目,看到了幾個可能會有CGI漏洞的目錄。在地址欄輸入其中之一,返回結(jié)果如圖1所示。
一些很典型的JSP文件和JS文件都列出來了。大喜之下,隨便選擇一個文件,點擊右鍵,然后,選擇“用FlashGet下載全部鏈接”選項,于是,這個目錄下的所有文件都被我下載到了本地。
其中最有價值的是一個名字為dbconn.js的文件,看來程序設(shè)計者是為了方便省事,把一些數(shù)據(jù)庫連接的密碼和連接地址都寫在里面了(這是很多開發(fā)者可能會忽略的問題)。不過,我現(xiàn)在最關(guān)心的還是Tomcat的管理員密碼。
簡單破解后,發(fā)現(xiàn)Tomcat系統(tǒng)中的admin用戶使用了非常簡單的口令:web123456。利用這個漏洞,有了這個密碼,下面的工作就相對簡單了。
專家支招:對于網(wǎng)站中的漏洞,我們要即時打上各種補(bǔ)丁,然后對幾個已知的安全弱勢方面進(jìn)行加強(qiáng),比如我們可以將“/admin”目錄進(jìn)行修改,讓入侵者不容易找到管理路徑。然后關(guān)閉Tomcat的目錄瀏覽功能,讓入侵者的漏洞嘗試徹底失敗。
入侵測試第三步:注入攻擊
很多網(wǎng)站對于注入防范做得都很不到位,注入攻擊可以讓網(wǎng)站暴露出自己的數(shù)據(jù)庫信息以至于暴露數(shù)據(jù)庫表中的管理員賬號和密碼。
重新登錄Tomcat的管理界面,點擊“Context (Admin)”這個鏈接,列出了WEB目錄下的一些文件和目錄的名稱,現(xiàn)在就可以對Tomcat的Context進(jìn)行管理,例如查看、增加、刪除Context。
回到Tomcat的管理界,我發(fā)現(xiàn)了一個上傳文件的組件,并且網(wǎng)站還有一個論壇。于是,我編寫了一個input.jsp文件,并將它當(dāng)作一般的Web 應(yīng)用程序,通過上傳的組件上傳到對方的WEB目錄里。打開input.jsp這個頁面(圖2)。
網(wǎng)頁對查詢窗體不會做任何輸入驗證,但是對用戶名稱的窗體則會。將數(shù)據(jù)填入窗體,來測試一下網(wǎng)頁的漏洞,例子如下:
(1)將alert(document.cookie)填入搜索字段,以便用XSS 來顯示進(jìn)程的cookie。
(2)將填入搜索字段來示范HTML 注入攻擊。
通過這些方法,我得到了一些論壇的用戶信息,當(dāng)然,這些都是針對JSP做的一些測試,以驗證Web應(yīng)用程序中的所有輸入字段。有了用戶信息,卻沒有密碼,怎么辦?在登錄時,我發(fā)現(xiàn)了一個8888端口,這會是個什么服務(wù)呢?
專家支招:在網(wǎng)頁連接數(shù)據(jù)庫的設(shè)計中,網(wǎng)頁設(shè)計人員要加入對一些敏感符號的審核機(jī)制,屏蔽一些在數(shù)據(jù)庫中有作用的符號,這可以在很大程度上成功防御注入攻擊。
入侵第四步:攻其“軟肋”
根據(jù)入侵的逐漸深入,系統(tǒng)存在的安全問題也漸漸清楚,下面就是針對網(wǎng)站的安全“軟肋”進(jìn)行攻擊。一般針對安全“軟肋”的攻擊會使入侵成功。
打開地址后,我發(fā)現(xiàn)這個端口運行的是Apache PHP。也就是說,這臺主機(jī)還可以編譯PHP。從經(jīng)驗分析來看,管理員在JSP主機(jī)上同時安裝PHP的主要目的可能是為了管理MySQL數(shù)據(jù)庫。因此,這個端口很可能有phpMyadmin這款MySQL數(shù)據(jù)庫管理軟件。這個端口上會不會有數(shù)據(jù)庫管理目錄呢?
果然不出我所料,在輸入這個目錄之后我發(fā)現(xiàn),我進(jìn)入了一個phpMyadmin的管理界面,可以對MySQL數(shù)據(jù)庫進(jìn)行任意操作。它支持從本地操作系統(tǒng)讀入或者寫入數(shù)據(jù)。更不可理解的是,管理員居然用root賬戶寫在了數(shù)據(jù)庫鏈接里面,想不控制這個數(shù)據(jù)庫都不行了。
打開其中的一個數(shù)據(jù)庫,在“SQL”中輸入“SELECT * FROM `administer`”,administer表中的數(shù)據(jù)全部顯示出來了。和我前面用JSP探測的用戶類型大致一致。至于他們的表和數(shù)據(jù)的刪改權(quán)限,現(xiàn)在則完全在我的掌握之中了。
專家支招:使用了一些軟件的時候,我們盡量修改它的默認(rèn)目錄,將它改為一個不容易被猜解到的名字。同時在訪問該目錄的時候加入密碼審核機(jī)制,就算入侵者找到了這個管理目錄也無法獲得進(jìn)入目錄的密碼。
入侵測試第一步:掃描
掃描是入侵的第一步,它可以讓你對即將入侵的目標(biāo)有一個全面的了解。同時掃描還有可能發(fā)現(xiàn)掃描對象的漏洞,為入侵提供一個指導(dǎo)方向。
朋友的兩臺服務(wù)器為Linux,一臺為Windows系統(tǒng),在路由器后面還有一臺Cisco PIX 525對三臺主機(jī)進(jìn)行保護(hù),只允許外部用戶連接不同主機(jī)的部分端口,例如80,25,110。
根據(jù)檢測,Cisco PIX防火墻過濾規(guī)則設(shè)置比較嚴(yán)密,基本上沒有多余端口允許外部用戶訪問。細(xì)致分析后,我發(fā)現(xiàn),目標(biāo)網(wǎng)絡(luò)的主機(jī)通過地址轉(zhuǎn)換來提供對外訪問,內(nèi)部使用192.168.*.*地址段。
先不考慮那么多,找個掃描軟件來看看主機(jī)的安全情況。我找來了X-Scan,在外部對這幾臺主機(jī)進(jìn)行了端口掃描之后,生成了一份關(guān)于端口的報表,發(fā)現(xiàn)其中有一個Tomcat服務(wù)器,解釋的自然就是JSP文件了。
小知識:
Tomcat Web服務(wù)器是一款開源的適合于各種平臺的免費網(wǎng)絡(luò)服務(wù)器。eBay.com與Dell 計算機(jī)等知名網(wǎng)站都采用或者曾經(jīng)采用Tomcat的container容器執(zhí)行Servlet 與JSP。
看來,只能通過Web服務(wù)進(jìn)行間接攻擊。首先檢查TCP 80端口的服務(wù)。我發(fā)現(xiàn),新聞搜索的功能是由端口8080提供的,輸入http:// 202.103.*.168:8080/之后,得到了一個系統(tǒng)管理登錄頁面,簡單地測試了一下,輸入“test/test”作為“用戶名/口令”,似乎認(rèn)證成功,但實際上并不能進(jìn)入下一個頁面。
專家支招:對于掃描來說,它很容易暴露我們網(wǎng)站的弱勢方面。應(yīng)對掃描,我們可以架設(shè)一個蜜罐來誤導(dǎo)掃描者,蜜罐可以讓系統(tǒng)偽裝成到處是漏洞,從而遮蔽真正存在的漏洞,也可以偽裝成沒有任何漏洞,讓入侵者不知道從何入手。
入侵測試第二步:漏洞嘗試
嘗試JSP各種已知漏洞,這個是在掃描結(jié)果中無法獲得任何有效信息指導(dǎo)入侵的情況下,被迫使用的方法。這種方法雖然效果不一定好,但是往往能夠起到意想不到的效果,從而讓入侵繼續(xù)下去。
我進(jìn)行了JSP大小寫的測試,因為JSP對大小寫是敏感的,Tomcat只會將小寫的jsp后綴的文件當(dāng)作是正常的JSP文件來執(zhí)行,如果大寫了就會引起Tomcat將index.JSP當(dāng)作是一個可以下載的文件讓客戶下載,若干測試后,我發(fā)現(xiàn)這個方法并不奏效,可能管理員已經(jīng)在服務(wù)器軟件的網(wǎng)站上下載了最新的補(bǔ)丁。
我發(fā)現(xiàn)大部分的JSP應(yīng)用程序在當(dāng)前目錄下都會有一個WEB-INF目錄,這個目錄通常存放的是JavaBeans編譯后的class 文件,如果不給這個目錄設(shè)置正常的權(quán)限,所有的class就會曝光。
而采用JAD軟件對下載的class文件反編譯后,原始的Java文件甚至變量名都不會改變。如果網(wǎng)頁制作者開始把數(shù)據(jù)庫的用戶名密碼都寫在了Java代碼中,反編譯后,說不定還能看到數(shù)據(jù)庫的重要信息。那么,怎么得到這些文件呢?
Tomcat版本的缺省“/admin”目錄是很容易訪問的。輸入:http://202.103.*.168/admin/,管理員目錄赫然在列。默認(rèn)情況下,“User Name”應(yīng)該是admin,“Password”應(yīng)該是空,輸入用戶和密碼后,并點擊“Login”按鈕,不能進(jìn)入,陸續(xù)使用了幾個比較常見的密碼,也無濟(jì)于事。
默認(rèn)情況下,Tomcat打開了目錄瀏覽功能,而一般的管理員又很容易忽視這個問題。也就是說,當(dāng)要求的資源直接映射到服務(wù)器上的一個目錄時,由于在目錄中缺少缺省的index.jsp等文件,Tomcat將不返回找不到資源的404錯誤,而是返回HTML格式的目錄列表。
想到了這點后,我打開剛才用X-Scan掃描后生成的報表文件,找到“安全漏洞及解決方案”欄目,看到了幾個可能會有CGI漏洞的目錄。在地址欄輸入其中之一,返回結(jié)果如圖1所示。
一些很典型的JSP文件和JS文件都列出來了。大喜之下,隨便選擇一個文件,點擊右鍵,然后,選擇“用FlashGet下載全部鏈接”選項,于是,這個目錄下的所有文件都被我下載到了本地。
其中最有價值的是一個名字為dbconn.js的文件,看來程序設(shè)計者是為了方便省事,把一些數(shù)據(jù)庫連接的密碼和連接地址都寫在里面了(這是很多開發(fā)者可能會忽略的問題)。不過,我現(xiàn)在最關(guān)心的還是Tomcat的管理員密碼。
簡單破解后,發(fā)現(xiàn)Tomcat系統(tǒng)中的admin用戶使用了非常簡單的口令:web123456。利用這個漏洞,有了這個密碼,下面的工作就相對簡單了。
專家支招:對于網(wǎng)站中的漏洞,我們要即時打上各種補(bǔ)丁,然后對幾個已知的安全弱勢方面進(jìn)行加強(qiáng),比如我們可以將“/admin”目錄進(jìn)行修改,讓入侵者不容易找到管理路徑。然后關(guān)閉Tomcat的目錄瀏覽功能,讓入侵者的漏洞嘗試徹底失敗。
入侵測試第三步:注入攻擊
很多網(wǎng)站對于注入防范做得都很不到位,注入攻擊可以讓網(wǎng)站暴露出自己的數(shù)據(jù)庫信息以至于暴露數(shù)據(jù)庫表中的管理員賬號和密碼。
重新登錄Tomcat的管理界面,點擊“Context (Admin)”這個鏈接,列出了WEB目錄下的一些文件和目錄的名稱,現(xiàn)在就可以對Tomcat的Context進(jìn)行管理,例如查看、增加、刪除Context。
回到Tomcat的管理界,我發(fā)現(xiàn)了一個上傳文件的組件,并且網(wǎng)站還有一個論壇。于是,我編寫了一個input.jsp文件,并將它當(dāng)作一般的Web 應(yīng)用程序,通過上傳的組件上傳到對方的WEB目錄里。打開input.jsp這個頁面(圖2)。
網(wǎng)頁對查詢窗體不會做任何輸入驗證,但是對用戶名稱的窗體則會。將數(shù)據(jù)填入窗體,來測試一下網(wǎng)頁的漏洞,例子如下:
(1)將alert(document.cookie)填入搜索字段,以便用XSS 來顯示進(jìn)程的cookie。
(2)將填入搜索字段來示范HTML 注入攻擊。
通過這些方法,我得到了一些論壇的用戶信息,當(dāng)然,這些都是針對JSP做的一些測試,以驗證Web應(yīng)用程序中的所有輸入字段。有了用戶信息,卻沒有密碼,怎么辦?在登錄時,我發(fā)現(xiàn)了一個8888端口,這會是個什么服務(wù)呢?
專家支招:在網(wǎng)頁連接數(shù)據(jù)庫的設(shè)計中,網(wǎng)頁設(shè)計人員要加入對一些敏感符號的審核機(jī)制,屏蔽一些在數(shù)據(jù)庫中有作用的符號,這可以在很大程度上成功防御注入攻擊。
入侵第四步:攻其“軟肋”
根據(jù)入侵的逐漸深入,系統(tǒng)存在的安全問題也漸漸清楚,下面就是針對網(wǎng)站的安全“軟肋”進(jìn)行攻擊。一般針對安全“軟肋”的攻擊會使入侵成功。
打開地址后,我發(fā)現(xiàn)這個端口運行的是Apache PHP。也就是說,這臺主機(jī)還可以編譯PHP。從經(jīng)驗分析來看,管理員在JSP主機(jī)上同時安裝PHP的主要目的可能是為了管理MySQL數(shù)據(jù)庫。因此,這個端口很可能有phpMyadmin這款MySQL數(shù)據(jù)庫管理軟件。這個端口上會不會有數(shù)據(jù)庫管理目錄呢?
果然不出我所料,在輸入這個目錄之后我發(fā)現(xiàn),我進(jìn)入了一個phpMyadmin的管理界面,可以對MySQL數(shù)據(jù)庫進(jìn)行任意操作。它支持從本地操作系統(tǒng)讀入或者寫入數(shù)據(jù)。更不可理解的是,管理員居然用root賬戶寫在了數(shù)據(jù)庫鏈接里面,想不控制這個數(shù)據(jù)庫都不行了。
打開其中的一個數(shù)據(jù)庫,在“SQL”中輸入“SELECT * FROM `administer`”,administer表中的數(shù)據(jù)全部顯示出來了。和我前面用JSP探測的用戶類型大致一致。至于他們的表和數(shù)據(jù)的刪改權(quán)限,現(xiàn)在則完全在我的掌握之中了。
專家支招:使用了一些軟件的時候,我們盡量修改它的默認(rèn)目錄,將它改為一個不容易被猜解到的名字。同時在訪問該目錄的時候加入密碼審核機(jī)制,就算入侵者找到了這個管理目錄也無法獲得進(jìn)入目錄的密碼。
相關(guān)文章

什么是CC攻擊 判斷網(wǎng)站是否被CC攻擊并且如何防御CC攻擊
CC主要是用來攻擊頁面的,大家都有這樣的經(jīng)歷,就是在訪問論壇時,如果這個論壇比較大,訪問的人比較多,打開頁面的速度會比較慢,對不?!一般來說,訪問的人越多,論壇的頁2024-01-06
Windows系統(tǒng)安全風(fēng)險-本地NTLM重放提權(quán)
入侵者主要通過Potato程序攻擊擁有SYSTEM權(quán)限的端口偽造網(wǎng)絡(luò)身份認(rèn)證過程,利用NTLM重放機(jī)制騙取SYSTEM身份令牌,最終取得系統(tǒng)權(quán)限,該安全風(fēng)險微軟并不認(rèn)為存在漏洞,所以2021-04-15
這篇文章主要介紹了文件上傳漏洞全面滲透分析小結(jié),這里主要為大家分享一下防御方法,需要的朋友可以參考下2021-03-21- 這篇文章主要介紹了sql手工注入語句&SQL手工注入大全,需要的朋友可以參考下2017-09-06
- 這篇文章主要介紹了詳解Filezilla server 提權(quán),需要的朋友可以參考下2017-05-13
FileZilla Server 2008 x64 提權(quán)與防御方法
這篇文章主要介紹了FileZilla Server 2008 x64 提權(quán)與防御方法,需要的朋友可以參考下2017-05-13https加密也被破解 HEIST攻擊從加密數(shù)據(jù)獲取明文
不久之前我們說過關(guān)于http和https的區(qū)別,對于加密的https,我們一直認(rèn)為它是相對安全的,可今天要講的是,一種繞過HTTPS加密得到明文信息的web攻擊方式,不知道這消息對你2016-08-10iPhone和Mac也會被黑 一條iMessage密碼可能就被盜了
一直以來蘋果系統(tǒng)的安全性都是比安卓要高的,但是再安全的系統(tǒng)也免不了漏洞,蘋果也一樣。最近爆出的新漏洞,只需要接收一條多媒體信息或者iMessage就會導(dǎo)致用戶信息泄露。2016-07-27- 國家正在修正關(guān)于黑客方面的法律法規(guī),有一條震驚黑客圈的“世紀(jì)佳緣”起訴白帽黑客事件,深深的傷害了廣大黑客們的心,加上扎克伯格和特拉維斯·卡蘭尼克賬號被盜,于是黑2016-07-11
如何逆向破解HawkEye keylogger鍵盤記錄器進(jìn)入攻擊者郵箱
面對惡意郵件攻擊,我們就只能默默忍受被他攻擊,連自我保護(hù)能力都沒有談什么反抗?讓人痛快的是,如今有了解決辦法,逆向破解鍵盤記錄器,進(jìn)入攻擊者郵箱2016-07-06


