


堵塞Web漏洞(上)
Web的大多數(shù)安全問題都屬于下面三種類型之一:
1、服務器向公眾提供了不應該提供的服務。
2、服務器把本應私有的數(shù)據(jù)放到了公開訪問的區(qū)域。
3、服務器信賴了來自不可信賴數(shù)據(jù)源的數(shù)據(jù)。
顯然,許多服務器管理員從來沒有從另一個角度來看看他們的服務器,例如使用端口掃描程序。如果他們曾經(jīng)這樣做了,就不會在自己的系統(tǒng)上運行那么多的服務,而這些服務原本無需在正式提供Web服務的機器上運行,或者這些服務原本無需面向公眾開放。
與這種錯誤經(jīng)常相伴的是,為了進行維護而運行某些不安全的、可用于竊取信息的協(xié)議。例如,有些Web服務器常常為了收集訂單而提供POP3服務,或者為了上載新的頁面內(nèi)容而提供FTP服務甚至數(shù)據(jù)庫服務。在某些地方這些協(xié)議可能提供安全認證(比如APOP)甚至安全傳輸(比如POP或者FTP的SSL版本),但更多的時候,人們使用的是這些協(xié)議的非安全版本。有些協(xié)議,比如Msql數(shù)據(jù)庫服務,則幾乎沒有提供任何驗證機制。
從公司外面訪問自己的網(wǎng)絡,完整地檢測、模擬攻擊自己的網(wǎng)站看看會發(fā)生些什么,這對于Web管理者來說是一個很好的建議。有些服務在機器安裝之后的默認配置中已經(jīng)啟動,或者由于安裝以及初始設置的需要而啟動了某些服務,這些服務可能還沒有正確地關閉。例如,有些系統(tǒng)提供的Web服務器會在非標準的端口上提供編程示范以及系統(tǒng)手冊,它們往往包含錯誤的程序代碼并成為安全隱患所在。正式運行的、可從Internet訪問的Web服務器不應該運行這些服務,請務必關閉這些服務。
9.1Web服務器常見漏洞介紹
我們的目的就是向大家介紹Web服務器的常見漏洞,相信看了自己也能試著發(fā)現(xiàn)一些Web服務器的漏洞了。不過需要記住的是,不要為了尋找漏洞而尋找漏洞。另外,即使你找到了漏洞,是否能夠利用還是另外一回事。
Web服務器存在的主要漏洞包括物理路徑泄露,CGI源代碼泄露,目錄遍歷,執(zhí)行任意命令,緩沖區(qū)溢出,拒絕服務,條件競爭和跨站腳本執(zhí)行漏洞,和CGI漏洞有些相似的地方,但是更多的地方還是有著本質(zhì)的不同。不過無論是什么漏洞,都體現(xiàn)著安全是一個整體的真理,考慮Web服務器的安全性,必須要考慮到與之相配合的操作系統(tǒng)。
9.1.1物理路徑泄露
物理路徑泄露一般是由于Web服務器處理用戶請求出錯導致的,如通過提交一個超長的請求,或者是某個精心構(gòu)造的特殊請求,亦或是請求一個Web服務器上不存在的文件。這些請求都有一個共同特點,那就是被請求的文件肯定屬于CGI腳本,而不是靜態(tài)HTML頁面。
還有一種情況,就是Web服務器的某些顯示環(huán)境變量的程序錯誤的輸出了Web服務器的物理路徑,這應該算是設計上的問題。
9.1.2目錄遍歷
目錄遍歷對于Web服務器來說并不多見,通過對任意目錄附加“../”,或者是在有特殊意義的目錄附加“../”,或者是附加“../”的一些變形,如“..\”或“..//”甚至其編碼,都可能導致目錄遍歷。前一種情況并不多見,但是后面的幾種情況就常見得多,去年非常流行的IIS二次解碼漏洞和Unicode解碼漏洞都可以看作是變形后的編碼。
9.1.3執(zhí)行任意命令
執(zhí)行任意命令即執(zhí)行任意操作系統(tǒng)命令,主要包括兩種情況。一是通過遍歷目錄,如前面提到的二次解碼和UNICODE解碼漏洞,來執(zhí)行系統(tǒng)命令。另外一種就是Web服務器把用戶提交的請求作為SSI指令解析,因此導致執(zhí)行任意命令。
9.1.4緩沖區(qū)溢出
緩沖區(qū)溢出漏洞想必大家都很熟悉,無非是Web服務器沒有對用戶提交的超長請求沒有進行合適的處理,這種請求可能包括超長URL,超長HTTPHeader域,或者是其它超長的數(shù)據(jù)。這種漏洞可能導致執(zhí)行任意命令或者是拒絕服務,這一般取決于構(gòu)造的數(shù)據(jù)。
9.1.5拒絕服務
拒絕服務產(chǎn)生的原因多種多樣,主要包括超長URL,特殊目錄,超長HTTPHeader域,畸形HTTPHeader域或者是DOS設備文件等。由于Web服務器在處理這些特殊請求時不知所措或者是處理方式不當,因此出錯終止或掛起。
9.1.6條件競爭
這里的條件競爭主要針對一些管理服務器而言,這類服務器一般是以System或Root身份運行的。當它們需要使用一些臨時文件,而在對這些文件進行寫操作之前,卻沒有對文件的屬性進行檢查,一般可能導致重要系統(tǒng)文件被重寫,甚至獲得系統(tǒng)控制權(quán)。
9.2CGI的安全性
現(xiàn)在我們來談談到底什么是CGI(CommonGateIntergace)。在物理上,CGI是一段程序,它運行在Server上,提供同客戶段Html頁面的接口。這樣說大概還不好理解。那么我們看一個實際例子:現(xiàn)在的個人主頁上大部分都有一個留言本。留言本的工作是這樣的:先由用戶在客戶段輸入一些信息,如名字之類的東西。接著用戶按一下“留言”(到目前為止工作都在客戶端),瀏覽器把這些信息傳送到服務器的CGI目錄下特定的CGI程序中,于是CGI程序在服務器上按照預定的方法進行處理。在本例中就是把用戶提交的信息存入指定的文件中。然后CGI程序<
新文章:
- CentOS7下圖形配置網(wǎng)絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動項
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機IP講解
- CentOS7使用hostapd實現(xiàn)無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡重啟出錯
- 解決Centos7雙系統(tǒng)后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認iptable規(guī)則詳解