漏洞名称: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
|