您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)如何解決PHP遠(yuǎn)程代碼執(zhí)行漏洞預(yù)警,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
在2019年9月26日,PHP官方發(fā)布了一則漏洞公告,此次漏洞公告中官方披露了一個(gè)遠(yuǎn)程代碼執(zhí)行漏洞,該漏洞是因PHP-FPM中的fpm_main.c文件的env_path_info下溢而導(dǎo)致的。該漏洞存在于PHP-FPM + Nginx組合使用并采用一定配置的情況下。該漏洞PoC已在2019年10月22日公布,PHP與Nginx組合使用的情況較為廣泛,攻擊者可利用該漏洞遠(yuǎn)程執(zhí)行任意代碼,所以危害性較大。
PHP-FPM(FastCGI流程管理器)是另一種PHP FastCGI實(shí)現(xiàn),具有一些其他功能,可用于各種規(guī)模的站點(diǎn),尤其是繁忙的站點(diǎn)。
對(duì)于PHP 5.3.3之前的php來說,PHP-FPM是一個(gè)補(bǔ)丁包,旨在將FastCGI進(jìn)程管理整合進(jìn)PHP包中。如果你使用的是PHP 5.3.3之前的PHP的話,就必須將它patch到你的PHP源代碼中,在編譯安裝PHP后才可以使用。而PHP 5.3.3已經(jīng)集成php-fpm了,不再是第三方的包了。PHP-FPM提供了更好的PHP進(jìn)程管理方式,可以有效控制內(nèi)存和進(jìn)程、可以平滑重載PHP配置。
該漏洞是PHP-FPM中的fpm_main.c文件的env_path_info下溢導(dǎo)致,在sapi/fpm/fpm/fpm_main.c文件中的第1140行包含pointer arithmetics,這些pointer arithmetics假定env_path_info的前綴等于php腳本的路徑。但是,代碼不會(huì)檢查這些假設(shè)是否被滿足,缺少檢查會(huì)導(dǎo)致”path_info”變量中的指針無效。
這樣的條件可以在標(biāo)準(zhǔn)的Nginx配置中實(shí)現(xiàn)。如果有這樣的Nginx配置:
攻擊者可以使用換行符(編碼格式為%0a)來破壞`fastcgi_split_path_info`指令中的regexp。regexp損壞將導(dǎo)致空PATH_INFO,從而觸發(fā)該錯(cuò)誤。
這個(gè)錯(cuò)誤會(huì)導(dǎo)致代碼執(zhí)行漏洞。在后面的代碼中,path_info[0]的值設(shè)置為0,然后再調(diào)用FCGI_PUTENV。攻擊者可以使用精心選擇的URL路徑長度和查詢字符串,使path_info精確地指向_fcgi_data_seg結(jié)構(gòu)的第一個(gè)字節(jié)。然后將0放入其中則‘char* pos’字段向后移動(dòng),然后FCGI_PUTENV使用腳本路徑覆蓋一些數(shù)據(jù)(包括其他快速cgi變量)。使用這種技術(shù),攻擊者可以創(chuàng)建一個(gè)偽PHP_VALUE fcgi變量,然后使用一系列精心選擇的配置值來執(zhí)行代碼。
在2019-09-26更新之前下載的PHP-FPM,且必須為Nginx + php-fpm 的服務(wù)器使用如下配置,會(huì)受到影響。
深信服下一代防火墻可防御此漏洞, 建議部署深信服下一代防火墻的用戶開啟安全防御模塊,可輕松抵御此高危風(fēng)險(xiǎn)。
深信服云盾已第一時(shí)間從云端自動(dòng)更新防護(hù)規(guī)則,云盾用戶無需操作,即可輕松、快速防御此高危風(fēng)險(xiǎn)。
1.如果業(yè)務(wù)不需要以下配置,建議用戶刪除:
2.使用github中的最新的PHP版本
上述就是小編為大家分享的如何解決PHP遠(yuǎn)程代碼執(zhí)行漏洞預(yù)警了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。