攻擊者要想成功實施文件上傳攻擊,必須要滿足以下三個條件:
1.可以上傳任意腳本文件,且上傳的文件能夠被Web服務器解析執行,具體來說就是存放上傳文件的目錄要有執行腳本的權限。
2.用戶能夠通過Web訪問這個文件。如果文件上傳後,不能通過Web訪問,那麼也不能成功實施攻擊。
3.要知道文件上傳到服務器後的存放路徑和文件名稱,因爲許多Web應用都會修改上傳文件的文件名稱,那麼這時就需要結合其他漏洞去獲取到這些信息。如果不知道上傳文件的存放路徑和文件名稱,即使你上傳了也無法訪問。
因此,針對此漏洞制定以下方案:
(1) 設置files文件夾下文件不可執行
(2) 設置後綴白名單,只允許規定後綴的文件上傳(需確認都有哪些後綴)
參考文獻:http://www.rising.com.cn/newsletter/news/2012-07-19/11966.html