淺析網站掛馬原因
網站掛馬背景
通過對近期教育網內檢測到的623個被掛馬網站所使用的Web服務程序類型以及編寫網頁所使用的腳本語言類型進行的統計分析:
圖 腳本語言及服務程序類型分布統計
從圖中可以看出,被掛馬網站使用最為廣泛的是IIS服務,其次是Apche服務。容易被掛馬的多數是ASP編寫的網頁,而直接使用HTML的靜態頁面則相對安全。是什么導致了IIS+ASP的服務組合容易被掛馬?這需要從造成網站被掛馬的原因說起。
網站掛馬的產生原因
1. 網站服務器的系統或應用程序存在安全漏洞導致網頁被掛馬
所有的系統和應用軟件都可能存在漏洞,各廠商會針對自己的產品定期發布安全公告和補丁程序,如果管理員疏于管理,不及時的安裝補丁,就可能導致漏洞被攻擊者利用從而篡改網頁進行掛馬。Windows系統和Linux系統一樣都會存在漏洞,但是由于Windows系統的普及率及版本的通用性使得攻擊者更熱衷于去開發Windows底下的攻擊程序,這就導致運行在Windows下的IIS+ASP的搭配更易受到攻擊。
當然這并不表示Linux系統就不會被攻擊(數據顯示Apache+PHP一樣也會被掛馬),只是相對于Windows來說它被攻擊的幾率會小一些。另外除了操作系統外,所有向外提供網絡服務的程序(如IIS、Apache、SQLserver、MySQL等)都需要打補丁。
2. 網頁代碼編寫有問題導致網頁被掛馬
網頁代碼編寫的問題主要體現在兩個方面,一是有數據庫操作的代碼對用戶提交的參數沒有嚴格進行限制,導致用戶可以利用特定的輸入參數對數據庫進行讀寫操作,從而得以向數據中插入掛馬鏈接,這也就是我們常說的SQL注入攻擊(這類攻擊是目前造成網頁掛馬的首要原因)。
代碼編寫存在的另一種問題是網站頁面代碼本身實現了上傳附件的功能,但是在實現過程中對用戶所上傳附件的文件類型限制不嚴,導致攻擊者可以上傳木馬文件控制服務器進而對網頁進行掛馬(常見于開源的論壇搭建代碼)。
3. 服務器感染病毒導致網頁被掛馬
一些病毒感染系統后會在系統上所有的網頁文件中加入掛馬鏈接,如果感染病毒的是Web服務器或者是用于網頁開發的系統,那么網站的網頁中就可能被插入掛馬鏈接。還有一些病毒則會通過ARP欺騙來劫持整個局域網內80端口的鏈接,并修改網絡數據包,插入掛馬鏈接。
如果Web服務器所在的局域網內有其他機器感染這類病毒就可能導致外部用戶訪問到的頁面存在掛馬鏈接。由于Linux系統的下的病毒數量遠少于Windows,這也是造成IIS+ASP比其他搭配更容易遭受掛馬攻擊的原因之一。
網站掛馬的原因不僅僅局限于以上幾種,本文只是為大家介紹了幾種常見的。
【編輯推薦】