web伺服器怎麼做好上傳漏洞安全
web伺服器怎麼做好上傳漏洞安全【199cloud-艾娜】
Web應用程式通常會有檔案上傳的功能,例如,在BBS釋出圖片、在個人網站釋出Zip壓縮包、在招聘網站上釋出DOC格式簡歷等。只要Web應用程式允許上傳檔案,就有可能存在檔案上傳漏洞。
1. 解析漏洞
攻擊者在利用上傳漏洞時,通常會與Web容器(IIS、Nginx、Apache、Tomc等at)的解析漏洞配合在一起
-
IIS解析漏洞:當建立
*.asa、*.asp
格式的資料夾時,其目錄下的任意檔案都將被IIS當作asp檔案來解析,在瀏覽器開啟檔案時,內容就會直接暴漏在瀏覽器裡,上傳的話,危險指令碼就會執行起來,達到攻擊的目的;
如: -
Apache解析漏洞;
-
PHP CGI解析漏洞;
2. 繞過上傳漏洞
程式設計師在防止上傳漏洞時可以分為以下兩種:
客戶端檢測:客戶端使用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也會存在這樣的攻擊問題。
3. 文字編輯器上傳漏洞
常見的文字編輯器有CKEditor、Ewebeditor、UEditor、KindEditor、XHeditor等。這類編輯器的功能都是非常類似的,比如都有圖片上傳、影片上傳、遠端下載等功能,這類文字編輯器也稱為副文字編輯器。
使用此類編輯器減少了程式開發的時間,但是卻增加了許多安全隱患,比如:
使用CKEditor編輯器的有10萬個網站,如果CKEditor爆出一個GetShell漏洞,那麼著10萬個網站都因此受到牽連。主要的漏洞體現在以下幾種:
(1)敏感資訊暴露。
(2)黑名單策略錯誤:黑名單有漏掉的副檔名。
(3)使用Burp Suite攔截修改,達到任意檔案都可以上傳。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69975301/viewspace-2695390/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 怎麼做伺服器安全伺服器
- Web安全-檔案上傳漏洞Web
- WEB安全:檔案上傳漏洞Web
- Web 安全漏洞之檔案上傳Web
- 香港伺服器的安全策略要怎麼做?伺服器
- 安全密碼儲存,該怎麼做,不該怎麼做?密碼
- 如何做伺服器安全維護,網站安全維護怎麼做好伺服器網站
- python怎麼做web開發PythonWeb
- WEB漏洞——檔案上傳Web
- Web安全漏洞之CSRFWeb
- [web安全] 檔案包含漏洞Web
- meltdown 安全漏洞原理是怎麼樣的?
- 24:WEB漏洞-檔案上傳之WAF繞過及安全修復Web
- 作業系統漏洞這麼多,網站伺服器的漏洞怎麼辦?作業系統網站伺服器
- Web 安全漏洞之 SQL 注入WebSQL
- <web滲透-檔案上傳漏洞>Web
- 關於WEB伺服器的安全措施有哪些?伺服器該如何防護?怎麼做好伺服器的安全措施?Web伺服器
- web安全入門課程推薦--Web 安全恩仇錄:漏洞原理Web
- 伺服器漏洞的安全防範伺服器
- ctfshow檔案上傳漏洞做題記錄
- 旅行社H5廣告宣傳怎麼做?H5
- 伺服器怎麼處理上傳大量資料伺服器
- Win10安全中心怎麼更新漏洞修復_win10使用安全中心更新漏洞修復教程Win10
- Web安全之PHP反序列化漏洞WebPHP
- Web 安全漏洞之 XSS 攻擊Web
- web應用安全測試之業務漏洞Web
- Web 安全恩仇錄:再談邏輯漏洞Web
- 如何保障Web伺服器安全Web伺服器
- Web安全之檔案上傳Web
- WEB安全漏洞掃描與處理(下)——安全報告分析和漏洞處理Web
- Python web伺服器怎麼處理請求PythonWeb伺服器
- 美國政府關於JAVA安全漏洞的宣告你怎麼看Java
- web 應用常見安全漏洞一覽Web
- 【網路安全】什麼是檔案上傳漏洞?預防方法有哪些?
- 網路安全老兵座談:雲安全審計(評估)應該怎麼做?
- 如何保證Web伺服器安全Web伺服器
- WEB安全是什麼Web
- 網路安全宣傳週來了,網路安全防線怎麼築?