這篇文章將為大家詳細講解有關PHPCMS漏洞之v9寬字節注入問題如何解決,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
“phpcms v9寬字節注入問題”的漏洞修復方案
簡介: 漏洞名稱:phpcms v9寬字節注入問題 補丁文件:www/phpcms/modules/pay/respond.php 補丁來源:云盾自研 漏洞描述:phpcmsv9.5.9以后版本開始默認使用mysqli支持,在phpcms/modules/pay/respond.php中,因為代碼邏輯不夠嚴謹, 導致寬字節注入?!咀⒁猓涸撗a丁為云盾自研代碼修復方案,云盾會根據您當前代碼是否符合云盾自研的修復模式進行檢測, 如果您自行采取了底層/框架統一修復、或者使用了其他的修復方案,可能會導致您雖然已經修復了該漏洞,云盾依然報告存在 漏洞,遇到該情況可選擇忽略該漏洞提示】 … 阿里云漏洞提示。
解決辦法:
1、打開www/phpcms/modules/pay/respond.php,代碼第14行左右;
2、找到respond_get()替換成下面的代碼,代碼如下:
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')); } }
添加后的代碼,截圖示例如下:
3、然后,將修改好的文件,上傳到服務器對應文件位置,直接覆蓋;
4、最后,登錄阿里云后臺,點擊驗證(截圖如下),即可完成漏洞修復。
關于PHPCMS漏洞之v9寬字節注入問題如何解決就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。