PHP資安議題處理

摘要

PHP-CGI作業系統命令注入漏洞
PHP 程式語言在設計時忽略 Windows 作業系統內部對字元編碼轉換的 Best-Fit 特性,導致未認證的攻擊者可透過特定的字元序列繞過舊有 CVE-2012-1823 的保護;透過參數注入等攻擊在遠端 PHP 伺服器上執行任意程式碼。

影響範圍

安裝於 Windows 作業系統上所有的 PHP 版本,參照下表:
PHP 8.3 < 8.3.8
PHP 8.2 < 8.2.20
PHP 8.1 < 8.1.29
由於 PHP 8.0 分支、PHP 7 以及 PHP 5 官方已不再維護,網站管理員可參考如何確認自己易遭受攻擊章節,並於修補建議找到暫時緩解措施。


解決方案

主要方案:
將 Windows 作業系統上之 PHP軟體更新到修復漏洞的版本:
8.3.8
8.2.20
8.1.29

緩解措施

重寫以下規則,但它僅相容於繁體中文、簡體中文和日文安裝
RewriteEngine On
RewriteCond %{QUERY_STRING} ^%ad [NC]
RewriteRule .? – [F,L]

於 Windows 上 XAMPP 的預設安裝,註解掉 httpd-xampp.conf 檔案中的以下行:ScriptAlias /php-cgi/ “C:/xampp/php/”