漏洞文件: ads/upload.php、uppic.php
require PHPCMS_ROOT."/class/upload.php";
if(!$_userid) message("请您先登录或注册!" , PHPCMS_PATH."member/login.php");
if($extid==1) {
$upfile_type= "jpg|png|gif";
} elseif ($extid==2) {
$upfile_type= "swf";
}
if($action=='upload')
{
$fileArr = array(
'file'=>$uploadfile,
'name'=>$uploadfile_name,
'size'=>$uploadfile_size,
'type'=>$uploadfile_type
);
$showname= $fileArr['name'];
$tmpext=strtolower(fileext($showname));
$tmpfilesize=$fileArr['size'];
$savepath = 'ads/'.$upfile_dir.'/'.date('Ym');
$f->create(PHPCMS_ROOT."/".$savepath);
$up = new upload($fileArr,'',$savepath,$upfile_type,1,$upfile_size);
...........
upfile_type变量过滤不够严格,可以自定义上传类型,实践得知可以上传除*.php和*.php3的其它任意后缀的文件,
因为PHPCMS_ROOT."/class/upload.php"这个文件经过Zend加密,所以无法直接分析。
$_userid是靠session获取的,所以注册个用户,登录后,开始利用漏洞
还有uppic.php也有同样漏洞,漏洞代码如下:
include PHPCMS_ROOT."/class/upload.php";
$fileArr = array('file'=>$uploadfile,'name'=>$uploadfile_name,'size'=>$uploadfile_size,'type'=>$uploadfile_type);
$uploadfiletype = $uploadfiletype ? $uploadfiletype : $_PHPCMS['uploadfiletype'];
$savepath = $uploaddir ? $channeldir."/".$uploaddir."/".date("Ym")."/" : $_PHPCMS['uploaddir']."/"
phpcms 3.0.0
无
暂无评论