天天看點

《白帽子講Web安全》| 學習筆記之檔案上傳漏洞

第8章  檔案上傳漏洞

1、檔案上傳漏洞

檔案上傳漏洞是指使用者上傳了一個可執行的腳本檔案,并通過此腳本檔案獲得了執行伺服器端指令的能力。

檔案上傳漏洞安全問題:

  • 上傳檔案是WEB腳本檔案,伺服器的WEB容器解釋并執行了使用者上傳的腳本,導緻代碼執行;
  • 上傳檔案是Flash的政策檔案crossdomain.xml,黑客用以控制Flash在該域下的行為(其他通過類是方式控制政策檔案的情況類似);
  • 上傳檔案是病毒、木馬檔案,黑客用以引誘使用者或者管理者下載下傳執行;
  • 上傳檔案是釣魚圖檔或者包含了腳本的圖檔,在某些版本的浏覽器中會被作為腳本執行,被用于釣魚和欺詐;

2、繞過檔案上傳檢查功能

在針對檔案上傳的檢查中,很多應用都是通過判斷檔案名字尾的方法來驗證檔案的安全性的。但是如果攻擊者手動修改了上傳過程的Post包,在檔案名後添加一個%00位元組,則可以截斷某些函數對檔案名的判斷。

有些應用還會通過判斷上傳檔案的檔案頭來驗證檔案的類型。為了繞過浏覽器MIME Sniff讀取檔案的前256個位元組功能,常見的攻擊技巧是僞造一個合法的檔案頭,而将真實的php等腳本代碼附在合法的檔案頭之後。

3、設計安全功能的檔案上傳功能

  • 檔案上傳的目錄設定為不可執行,可做靜态檔案處理。
  • 判斷檔案類型,可結合使用MIME Type、字尾檢查等方式。盡量使用白名單。
  • 使用随機數改寫檔案名和檔案路徑。
  • 單獨設定檔案伺服器的域名,受到浏覽器同源政策關系,一系列攻擊将失效。

繼續閱讀