《白帽子講Web安全》8-文件上傳漏洞

第8章 文件上傳漏洞

8.1 文件上傳漏洞概述

  1. 文件上傳漏洞是指用戶上傳了一個可執行的腳本文件,並通過此腳本文件獲得了執行服務器端命令的能力。
  2. 這種攻擊方式是最爲直接和有效的,有時候幾乎沒有什麼技術門檻。
  3. “文件上傳”本身是一個正常業務需求,本身沒有問題,但有問題的是文件上傳後,服務器怎麼處理、解釋文件。
    • 如果服務器的處理邏輯做的不夠安全,則會導致嚴重的後果。
  4. 文件上傳後導致的常見安全問題:
上傳文件 後果
Web腳本語言 服務器的Web容器解釋並執行了用戶上傳的腳本,導致代碼執行
Flash的策略文件crossdomain.xml 黑客用以控制Flash在該域下的行爲(其他通過類似方式控制策略文件的情況類似)
病毒、木馬文件 黑客用以誘騙用戶或者管理員下載執行
釣魚圖片或包含了腳本的圖片 在某些版本的瀏覽器中會被作爲腳本執行,被用於釣魚和欺詐

5. 多數情況下,文件上傳漏洞一般都是指“上傳web腳本能夠被服務器解析”的問題,就是通常所說的webshell的問題。完成這個攻擊要滿足以下幾個條件:
- 上傳的文件能夠被Web容器解釋執行
- 文件上傳後所在的目錄要是Web容器所覆蓋到的路徑
- 用戶能夠從Web上訪問這個文件
- 用戶上傳的文件若被安全檢查、格式化、圖片壓縮等功能改變了內容,則也可能導致攻擊不成功。

8.1.1 從FCKEditor文件上傳漏洞談起

8.1.2 繞過文件上傳檢查功能

8.2 功能還是漏洞

8.2.1 Apache文件解析問題

8.2.2 IIS文件解析問題

8.2.3 PHP CGI路徑解析問題

8.2.4 利用上傳文件釣魚

8.3 設計安全的文件上傳功能

  1. 文件上傳的目錄設置爲不可執行
  2. 判斷文件類型
  3. 使用隨機數改寫文件名和文件路徑
  4. 單獨設置文件服務器的域名

8.4 小結

  1. 如果應用缺乏安全檢查,或者安全檢查的實現存在問題,就極有可能導致嚴重的後果。
  2. 文件上傳往往與代碼執行聯繫在一起,因此對於所有業務中要用到的上傳功能,都應該由安全工程師進行嚴格的檢查。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章