關于提示“phpcmsv9寬字節注入問題”的漏洞修復方案 簡介: 漏洞名稱:phpcmsv9寬字節注入問題 漏洞描述:phpcmsv9.5.9以后版本開始默認使用mysqli支持,在phpcms/modules/pay/respond.php中,因為代碼邏輯不夠嚴謹, 導致寬字節注入?!咀⒁猓涸撗a丁為云盾自研代碼修復方案,云盾會根據您當前代碼是否符合云盾自研的修復模式進行檢測, 如果您自行采取了底層/框架統一修復、或者使用了其他的修復方案,可能會導致您雖然已經修復了該漏洞,云盾依然報告存在 漏洞,遇到該情況可選擇忽略該漏洞提示】 … 阿里云漏洞提示。 解決辦法: 1、打開www/phpcms/modules/pay/respond.php,代碼第14行左右; 2、找到respond_get()替換成下面的代碼,代碼如下: publicfunctionrespond_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=newpay_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'));}} 添加后的代碼,截圖示例如下: 3、然后,將修改好的文件,上傳到服務器對應文件位置,直接覆蓋; 4、最后,登錄阿里云后臺,點擊驗證(截圖如下),即可完成漏洞修復。 以上就是關于“phpcmsv9寬字節注入問題”漏洞修復的全部內容。
|