热搜词
发表于 2017-4-12 08:46:54 | 显示全部楼层 |阅读模式
漏洞名称:phpcms注入漏洞

文件路径:/phpcms/modules/poster/poster.php

漏洞描述:

phpcms的/phpcms/modules/poster/poster.php 文件中,未对输入参数$_GET['group']进行严格过滤。导致注入漏洞。【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,如果您自行采取了底层/框架统一修复、或者使用了其他的修复方案,可能会导致您虽然已经修复了改漏洞,云盾依然报告存在漏洞,遇到该情况可选择忽略该漏洞提示】



当前修复代码的演示版本为 Phpcms V9.6.0 Release 20151225,根据版本的不同以下行号可能会有1-5行的误差。请自行核对。


修复区域,所在位置约221行



原始代码

if ($_GET['group']) {
    $group = " `".$_GET['group']."`";
    $fields = "*, COUNT(".$_GET['group'].") AS num";
    $order = " `num` DESC";
}


补丁代码

if ($_GET['group']) { $_GET['group'] = preg_replace('#`#', '', $_GET['group']);
    $group = " `".$_GET['group']."`";
    $fields = "*, COUNT(".$_GET['group'].") AS num";
    $order = " `num` DESC";
}



由于最近比较忙忘记上传补丁了。
参考修复详情及补丁下载,网站地址 http://www.libs.org.cn/content-38-115-1.html









phpcms的/phpcms/modules/poster/poster.php 文件中,未对输入参数$_GET['group']进行严格过滤。导致注入漏洞。【注意:该补丁为云盾自研代码修复方案,云盾会根据您当前代码是否符合云盾自研的修复模式进行检测,如果您自行采取了底层/框架统一修复、或者使用了其他的修复方案,可能会导致您虽然已经修复了改漏洞,云盾依然报告存在漏洞,遇到该情况可选择忽略该漏洞提示】

B5教程网分享解决方法:

找到poster.php文件 大概220行

把如下代码

//如果设置了按地区或者按ip分类
            if ($_GET['group']) {
                $group = " `".$_GET['group']."`";
                $fields = "*, COUNT(".$_GET['group'].") AS num";
                $order = " `num` DESC";
            }  

修改成如下代码

//解决代码如下 B5教程网

//如果设置了按地区或者按ip分类
            $group = trim($_GET['group']);
            if(!in_array($group,array('ip','area')){
                $group='ip';
            }
            if ($group) {
                $group = " `".$group."`";
                $fields = "*, COUNT(".$group.") AS num";
                $order = " `num` DESC";
            }  

ok,问题解决
转自【B5教程网】:http://www.bcty365.com/content-101-5365-1.html
全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-29 16:57 , Processed in 0.182596 second(s), 26 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team