PHPCMS漏洞之v9宽字节注入问题如何解决

  介绍

这篇文章将为大家详细讲解有关PHPCMS漏洞之v9宽字节注入问题如何解决,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

<强>“PHPCMS v9宽字节注入问题”的漏洞修复方案

简介:   漏洞名称:phpcms v9宽字节注入问题   补丁文件:www/phpcms/模块/工资/respond.php   补丁云盾自研   漏洞描述:phpcmsv9.5.9以后版本开始默认使用mysqli支持,在phpcms/模块/工资/respond.php中,因为代码逻辑不够严谨,   导致宽字节注入。【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,   如果您自行采取了底层/框架统一修复,或者使用了其他的修复方案,可能会导致您虽然已经修复了该漏洞,云盾依然报告存在   漏洞,遇到该情况可选择忽略该漏洞提示】   …   阿里云漏洞提示。

<强>解决办法:

1,打开www/phpcms/模块/工资/respond.php,代码第14行左右,

2,找到respond_get()替换成下面的代码,代码如下:

公共职能respond_get () {   如果($ _GET[& # 39;代码# 39;)){   代码=美元mysql_real_escape_string ($ _GET[& # 39;代码# 39;]);//注意修改   支付美元=$这→get_by_code(代码)美元;//注意修改   如果(! $付款)showmessage (L (& # 39; payment_failed& # 39;));   (cfg=unserialize_config美元付款(& # 39;配置# 39;]);   (函数pay_name=美元付款(& # 39;pay_code& # 39;]);   pc_base:: load_app_class (& # 39; pay_factory& # 39; & # 39; & # 39;, 0);   payment_handler=new pay_factory美元($ pay_name、$ cfg);   return_data=https://www.yisu.com/zixun/payment_handler ->收到美元();   如果(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=支付c=存款”);   其他}{   showmessage (L (“pay_failed”), APP_PATH。“index . php ? m=支付c=存款”);   }   其他}{   showmessage (L (' pay_success '));   }   }

添加后的代码,截图示例如下:

 PHPCMS漏洞之v9宽字节注入问题如何解决

3,然后,将修改好的文件,上传到服务器对应文件位置,直接覆盖;

4,最后,登录阿里云后台,点击验证(截图如下),即可完成漏洞修复。

 PHPCMS漏洞之v9宽字节注入问题如何解决

关于PHPCMS漏洞之v9宽字节注入问题如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

PHPCMS漏洞之v9宽字节注入问题如何解决