您好,登錄后才能下訂單哦!
web服務器怎么做好上傳漏洞安全【199cloud-艾娜】
Web應用程序通常會有文件上傳的功能,例如,在BBS發布圖片、在個人網站發布Zip壓縮包、在招聘網站上發布DOC格式簡歷等。只要Web應用程序允許上傳文件,就有可能存在文件上傳漏洞。
攻擊者在利用上傳漏洞時,通常會與Web容器(IIS、Nginx、Apache、Tomc等at)的解析漏洞配合在一起
IIS解析漏洞:當建立
*.asa、*.asp
格式的文件夾時,其目錄下的任意文件都將被IIS當作asp文件來解析,在瀏覽器打開文件時,內容就會直接暴漏在瀏覽器里,上傳的話,危險腳本就會運行起來,達到攻擊的目的;
如:
http://127.0.0.1/parsing.asp/test.txt
Apache解析漏洞;
PHP CGI解析漏洞;
程序員在防止上傳漏洞時可以分為以下兩種:
客戶端檢測:客戶端使用JavaScript檢測,在文件未上傳時,就對文件進行驗證;
因此,繞過客戶端的檢測來達到攻擊的方式有以下兩種:
(1)使用FireBug:找到html源代碼里面的Form表單,將onsubmit事件刪除,JavaScript上傳驗證將會失效。
(2)中間人攻擊:使用Burb Suite則是按照正常的流程通過JavaScript驗證,然后在傳輸中的HTTP層做手腳。(
在上傳時使用Burb Suite攔截上傳數據,修改文件擴展名,就可以繞過客戶端驗證)。
注意:任何客戶端驗證都是不安全的。客戶端驗證是防止用戶輸入錯誤,減少服務器開銷,而服務器端驗證才可以真正防御攻擊者。
服務端檢測:服務端腳本一般會檢測文件的MIME類型,檢測文件擴展名是否合法,甚至有些程序員檢測文件中是否嵌入惡意代碼。
主要有以下幾種,但也有存在漏洞的可能:
(1)白名單與黑名單驗證
在上傳文件時,大多數程序員會對文件擴展名檢測,驗證文件擴展名通常有兩種方式:白名單與黑名單。
黑名單過濾方式:是一種不安全的過濾方式,黑名單定義了一系列不允許上傳的文件的擴展名,服務器端接收文件后,與黑名單擴展名對比,如果發現文件擴展名與黑名單里的擴展名匹配,則認為文件不合法。舉例子:
$BlackList = array('asp', 'php', 'jsp', 'php5', 'asa', 'aspx'); // 黑名單//然而并不能很好的防御: .cer文件并沒有在黑名單里,則,可以通過驗證,因此是無法防御上傳漏洞的。
白名單過濾方式:與黑名單恰恰相反,定義一系列允許上傳的擴展名,白名單擁有比黑名單更好的防御機制。舉例子:
$WhiteList = array('rar', 'jpg', 'png', 'bmp', 'gif', 'doc'); // 白名單// 然而并不能很好的防御:// 例如:Web容器為IIS 6.0,攻擊者把木馬文件改名為pentest.asp;1.jpg上傳,此時的文件為jpg格式,從而可以順利通過驗證,而IIS 6.0卻會把pentest.asp;1.jpg當作asp腳本程序來執行,最終攻擊者可以繞過白名單的檢測,并且執行木馬程序。// 白名單機制僅僅是防御上傳漏洞的第一步。
(2)MIME驗證
MIME類型用來設定某種擴展名文件的打開方式,當具有該擴展名的文件被訪問時,瀏覽器會自動使用指定的應用程序來打開。如GIF圖片MIME為image/gif,css文件MIME類型為text/css。
// 開發人員經常會對文件MIME類型做驗證,PHP代碼如下:if ($_FILES['file']['type'] == 'image/jpg'){ // 判斷是否是jpg格式 // ...}
因此,如果上傳PHP文件時,并使用Burp Suite攔截查看MIME類型,可以發現PHP文件的MIME類型為
application/php
,而上面代碼中會判斷文件類型是否為image/jpg,顯然這里無法通過驗證。
但是在攔截的時候可以將HTTP請求中的content-Type更改為image/jpg類型,這樣即可通過程序驗證,達到攻擊的目的。
(3)目錄驗證
再文件上傳時,程序員通常允許用戶將文件放到指定的目錄中,然而有些Web開發人員為了讓代碼更“健壯”,通常會做一個動作,如果指定的目錄存在,就將文件寫入目錄中,不存在則先建立目錄,然后再寫入文件。
攻擊方式:通過使用工具將普通的文件夾名稱改為
.asp
格式的目錄,稱為
畸形文件夾
,然后提交
一句話圖片木馬
文件,即上傳成功后,這個網頁木馬就會被解析,從而使下攻擊。
(4)截斷上傳攻擊
也是使用工具進行攔截更改。
截斷上傳攻擊在ASP程序中最常見,在PHP、JSP也會存在這樣的攻擊問題。
常見的文本編輯器有CKEditor、Ewebeditor、UEditor、KindEditor、XHeditor等。這類編輯器的功能都是非常類似的,比如都有圖片上傳、視頻上傳、遠程下載等功能,這類文本編輯器也稱為副文本編輯器。
使用此類編輯器減少了程序開發的時間,但是卻增加了許多安全隱患,比如:
使用CKEditor編輯器的有10萬個網站,如果CKEditor爆出一個GetShell漏洞,那么著10萬個網站都因此受到牽連。主要的漏洞體現在以下幾種:
(1)敏感信息暴露。
(2)黑名單策略錯誤:黑名單有漏掉的擴展名。
(3)使用Burp Suite攔截修改,達到任意文件都可以上傳。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。