全程追蹤入侵JSP網站伺服器

來源:互聯網
上載者:User

在用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漏洞的目錄。在地址欄輸入其中之一。一些很典型的JSP檔案和JS檔案都列出來了。大喜之下,隨便選擇一個檔案,點擊右鍵,然後,選擇“用FlashGet下載全部連結”選項,於是,這個目錄下的所有檔案都被我下載到了本地。

  其中最有價值的是一個名字為dbconn.js的檔案,看來程式設計者是為了方便省事,把一些資料庫連接的密碼和串連地址都寫在裡面了(這是很多開發人員可能會忽略的問題)。不過,我現在最關心的還是Tomcat的管理員密碼。

  簡單破解後,發現Tomcat系統中的admin使用者使用了非常簡單的口令:web123456。利用這個漏洞,有了這個密碼,下面的工作就相對簡單了。

  專家支招:對於網站中的漏洞,我們要即時打上各種補丁,然後對幾個已知的安全弱勢方面進行加強,比如我們可以將“/admin”目錄進行修改,讓入侵者不容易找到管理路徑。然後關閉Tomcat的瀏覽目錄功能,讓入侵者的漏洞嘗試徹底失敗。

      入侵測試第三步:注入攻擊

  很多網站對於注入防範做得都很不到位,注入攻擊可以讓網站暴露出自己的資料庫資訊以至於暴露資料庫表中的管理員帳號和密碼。

  重新登入Tomcat的管理介面,點擊“Context (Admin)”這個連結,列出了WEB目錄下的一些檔案和目錄的名稱,現在就可以對Tomcat的Context進行管理,例如查看、增加、刪除Context。

  回到Tomcat的管理界,我發現了一個上傳檔案的組件,並且網站還有一個論壇。於是,我編寫了一個input.jsp檔案,並將它當作一般的Web 應用程式,通過上傳的組件上傳到對方的WEB目錄裡。開啟input.jsp這個頁面,網頁對查詢表單不會做任何輸入驗證,但是對使用者名稱稱的表單則會。將資料填入表單,來測試一下網頁的漏洞,例子如下:

  (1)將alert(document.cookie)填入搜尋欄位,以便用XSS 來顯示進程的cookie。

  (2)將填入搜尋欄位來示範HTML 注入攻擊。

  通過這些方法,我得到了一些論壇的使用者資訊,當然,這些都是針對JSP做的一些測試,以驗證Web應用程式中的所有輸入欄位。有了使用者資訊,卻沒有密碼,怎麼辦?在登入時,我發現了一個8888連接埠,這會是個什麼服務呢?

  專家支招:在網頁串連資料庫的設計中,網頁設計人員要加入對一些敏感符號的審核機制,屏蔽一些在資料庫中有作用的符號,這可以在很大程度上成功防禦注入攻擊。

  入侵第四步:攻其“軟肋”

  根據入侵的逐漸深入,系統存在的安全問題也漸漸清楚,下面就是針對網站的安全“軟肋”進行攻擊。一般針對安全“軟肋”的攻擊會使入侵成功。

  開啟地址後,我發現這個連接埠啟動並執行是Apache+PHP。也就是說,這台主機還可以編譯PHP。從經驗分析來看,管理員在JSP主機上同時安裝PHP的主要目的可能是為了管理MySQL資料庫。因此,這個連接埠很可能有phpMyadmin這款MySQL資料庫管理軟體。這個連接埠上會不會有資料庫管理目錄呢?

  果然不出我所料,在輸入這個目錄之後我發現,我進入了一個phpMyadmin的管理介面,可以對MySQL資料庫進行任意操作。它支援從本地作業系統讀入或者寫入資料。更不可理解的是,管理員居然用root賬戶寫在了資料庫連結裡面,想不控制這個資料庫都不行了。

  開啟其中的一個資料庫,在“SQL”中輸入“SELECT * FROM `administer`”,administer表中的資料全部顯示出來了。和我前面用JSP探測的使用者類型大致一致。

    於他們的表和資料的刪改許可權,現在則完全在我的掌握之中了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.