物理路徑泄露
物理路徑泄露一般是由于Web服務(wù)器處理用戶請(qǐng)求出錯(cuò)導(dǎo)致的,如通過提交一個(gè)超長的請(qǐng)求,或者是某個(gè)精心構(gòu)造的特殊請(qǐng)求,或是請(qǐng)求一個(gè)Web服務(wù)器上不存在的文件。這些請(qǐng)求都有一個(gè)共同特點(diǎn),那就是被請(qǐng)求的文件肯定屬于CGI腳本,而不是靜態(tài)HTML頁面。
還有一種情況,就是Web服務(wù)器的某些顯示環(huán)境變量的程序錯(cuò)誤的輸出了Web服務(wù)器的物理路徑,這應(yīng)該算是設(shè)計(jì)上的問題。
目錄遍歷
目錄遍歷對(duì)于Web服務(wù)器來說并不多見,通過對(duì)任意目錄附加“../”,或者是在有特殊意義的目錄附加“../”,或者是附加“../”的一些變形,如“..\”或“..//”甚至其編碼,都可能導(dǎo)致目錄遍歷。前一種情況并不多見,但是后面的幾種情況就常見得多,以前非常流行的IIS二次解碼漏洞和Unicode解碼漏洞都可以看作是變形后的編碼。
執(zhí)行任意命令
執(zhí)行任意命令即執(zhí)行任意操作系統(tǒng)命令,主要包括兩種情況。一是通過遍歷目錄,如前面提到的二次解碼和UNICODE解碼漏洞,來執(zhí)行系統(tǒng)命令。另外一種就是Web服務(wù)器把用戶提交的請(qǐng)求作為SSI指令解析,因此導(dǎo)致執(zhí)行任意命令。
緩沖區(qū)溢出
緩沖區(qū)溢出漏洞想必大家都很熟悉,無非是Web服務(wù)器沒有對(duì)用戶提交的超長請(qǐng)求沒有進(jìn)行合適的處理,這種請(qǐng)求可能包括超長URL,超長HTTP Header域,或者是其它超長的數(shù)據(jù)。這種漏洞可能導(dǎo)致執(zhí)行任意命令或者是拒絕服務(wù),這一般取決于構(gòu)造的數(shù)據(jù)。
拒絕服務(wù)
拒絕服務(wù)產(chǎn)生的原因多種多樣,主要包括超長URL,特殊目錄,超長HTTP Header域,畸形HTTP Header域或者是DOS設(shè)備文件等。由于Web服務(wù)器在處理這些特殊請(qǐng)求時(shí)不知所措或者是處理方式不當(dāng),因此出錯(cuò)終止或掛起。
SQL注入
SQL注入的漏洞在編程過程造成的。后臺(tái)數(shù)據(jù)庫允許動(dòng)態(tài)SQL語句的執(zhí)行。前臺(tái)應(yīng)用程序沒有對(duì)用戶輸入的數(shù)據(jù)或者頁面提交的信息(如POST, GET)進(jìn)行必要的安全檢查。數(shù)據(jù)庫自身的特性造成的,與web程序的編程語言的無關(guān)。幾乎所有的關(guān)系數(shù)據(jù)庫系統(tǒng)和相應(yīng)的SQL語言都面臨SQL注入的潛在威脅 。
條件競(jìng)爭(zhēng)
這里的條件競(jìng)爭(zhēng)主要針對(duì)一些管理服務(wù)器而言,這類服務(wù)器一般是以System或Root身份運(yùn)行的。當(dāng)它們需要使用一些臨時(shí)文件,而在對(duì)這些文件進(jìn)行寫操作之前,卻沒有對(duì)文件的屬性進(jìn)行檢查,一般可能導(dǎo)致重要系統(tǒng)文件被重寫,甚至獲得系統(tǒng)控制權(quán)。
CGI漏洞
通過CGI腳本存在的安全漏洞,比如暴露敏感信息、缺省提供的某些正常服務(wù)未關(guān)閉、利用某些服務(wù)漏洞執(zhí)行命令、應(yīng)用程序存在遠(yuǎn)程溢出、非通用CGI程序的編程漏洞。