PHPCMS漏洞之v9寬字節注入問題

PHPCMS漏洞之v9寬字節注入問題

關于阿里云提示“phpcms v9寬字節注入問題”的漏洞修復方案

簡介: 漏洞名稱:phpcms?v9寬字節注入問題 補丁文件:www/phpcms/modules/pay/respond.php 補丁來源:云盾自研 漏洞描述:phpcmsv9.5.9以后版本開始默認使用mysqli支持,在phpcms/modules/pay/respond.php中,因為代碼邏輯不夠嚴謹, 導致寬字節注入。【注意:該補丁為云盾自研代碼修復方案,云盾會根據您當前代碼是否符合云盾自研的修復模式進行檢測, 如果您自行采取了底層/框架統一修復、或者使用了其他的修復方案,可能會導致您雖然已經修復了該漏洞,云盾依然報告存在 漏洞,遇到該情況可選擇忽略該漏洞提示】 … 阿里云漏洞提示。

解決辦法:

1、打開www/phpcms/modules/pay/respond.php,代碼第14行左右;

2、找到respond_get()替換成下面的代碼,代碼如下:

立即學習PHP免費學習筆記(深入)”;

public?function?respond_get()?{? ?if?($_GET['code']){? ??????$code?=?mysql_real_escape_string($_GET['code']);//注意修改 ??????$payment?=?$this->get_by_code($code);//注意修改 ??????if(!$payment)?showmessage(L('payment_failed'));? ??????$cfg?=?unserialize_config($payment['config']);? ??????$pay_name?=?ucwords($payment['pay_code']);? ??????pc_base::load_app_class('pay_factory','',0);? ??????$payment_handler?=?new?pay_factory($pay_name,?$cfg);? ??????$return_data?=?$payment_handler->receive();? ??????if($return_data)?{? ??????????if($return_data['order_status']?==?0)?{?????????????? ??????????????$this->update_member_amount_by_sn($return_data['order_id']);? ??????????}? ??????????$this->update_recode_status_by_sn($return_data['order_id'],$return_data['order_status']);? ??????????showmessage(L('pay_success'),APP_PATH.'index.php?m=pay&c=deposit');? ??????}?else?{? ??????????showmessage(L('pay_failed'),APP_PATH.'index.php?m=pay&c=deposit');? ??????}? ??}?else?{? ??????showmessage(L('pay_success'));? ??} }

添加后的代碼,截圖示例如下:

PHPCMS漏洞之v9寬字節注入問題

3、然后,將修改好的文件,上傳到服務器對應文件位置,直接覆蓋;

4、最后,登錄阿里云后臺,點擊驗證(截圖如下),即可完成漏洞修復。

PHPCMS漏洞之v9寬字節注入問題

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享