首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP/ASP 檔案上傳漏洞深度剖析與防禦

     編輯:PHP 相關知識

漏洞原理

上傳腳本若直接信任用戶提交的 filepath 參數作為儲存路徑,攻擊者可構造 filepath=/evil.asp,導致上傳檔案儲存為可執行腳本(如 /evil.asp/200409240824.jpg),經 Web 伺服器解析時當成 ASP/PHP 執行。

攻擊流程

  1. 用 wsockexpert 抓取正常上傳封包
  2. 用 UltraEdit 修改 filepath 欄位,結尾植入 0x00 截斷字串
  3. 重新計算 Content-Length
  4. 用 nc 重發封包:nc -vv target.com 80 < modified.txt

常見繞過手法

  • 隱藏欄位混淆:增加多個 hidden 欄位干擾自動化工具,但手工修改封包仍可繞過
  • 副檔名過濾不全:.php3、.phtml、.asa 等
  • 大小寫繞過:.Asp、.PhP

根本防禦策略

  1. 路徑常量化:filepath 寫死在伺服器端代碼,不可由用戶控制
  2. 檔名重命名:上傳後以亂數/時間戳/雜湊重命名,副檔名強制為安全值(如 .dat、.jpg)
  3. 儲存目錄非 Web 可執行:上傳目錄設定 php_flag engine off 或置於 Webroot 外
  4. MIME/內容驗證:getimagesize() 驗證圖片、finfo_file() 檢測真實型別
  5. 長度與字元白名單:嚴格限制 filepath 允許字元與長度

安全原則:永遠不要信任用戶輸入,包含檔名、路徑、Content-Type。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved