介绍
这篇文章将为大家详细讲解有关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 ')); } }
添加后的代码,截图示例如下:
3,然后,将修改好的文件,上传到服务器对应文件位置,直接覆盖;
4,最后,登录阿里云后台,点击验证(截图如下),即可完成漏洞修复。
关于PHPCMS漏洞之v9宽字节注入问题如何解决就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。