免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 网站相关 > 网站安全 > DeDeCMS v5.7 member漏洞分析(5)

DeDeCMS v5.7 member漏洞分析(5)

时间:2012-04-12 20:32来源:未知 整理:寂涯网络 点击:


文件
{    include_once(dirname( FILE__).'/config.php');        }
...(略)
$newname = ( empty($newname) ? '' : preg_replace("#[\\ \"\*\?\t\r\n<>':\/|]#", "", $newname) ); //②过滤新文件名中的正斜杠、反斜杠、空格、单引号等符号
...(略)
$uploadfile_name = trim(preg_replace("#[ \r\n\t\*\%\\\/\?><\|\":]{1,}#", '',
$uploadfile_name));
if(!preg_match("#\.(".$cfg_softtype.")#i", $uploadfile_name))
{    //$cfg_softtype = 'zip|gz|rar|iso|doc|xsl|ppt|wps'
//③进行允许$cfg_softtype 类型判断。因为正则表达式缺少“$”,所以“.zip.asp”
将满足条件,还可以将上传文件的扩展名改为 rar 等。
ShowMsg("你所上传的{$uploadmbtype}不在许可列表,请更改系统对扩展名限定的
配置!",""); exit();
}
if($activepath==$cfg_soft_dir)
{   //$cfg_soft_dir=$cfg_medias_dir.'/soft',提交空变量$activepath 使条件不成

...(略)
}
if(!empty($newname)) //上传后的新文件名
{    $filename = $newname;
if(!preg_match("#\.#", $filename)) $fs = explode('.', $uploadfile_name);
else $fs = explode('.', $filename);
//④新文件名包含“.”,取新文件扩展名,否则取上传文件扩展名
if(preg_match("#".$cfg_not_allowall."#", $fs[count($fs)-1]))
{    //$cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml";
//⑤再次进行禁止$cfg_not_allowall 类型判断,因为正则表达式缺少“i”,
所以可以通过大写绕过
ShowMsg("你指定的文件名被系统禁止!",'javascript:;');      exit();
}
if(!preg_match("#\.#",           $filename))          $filename          =
$filename.'.'.$fs[count($fs)-1];
}else{                           $filename                           =
$cuserLogin->getUserID().'-'.dd2char(MyDate('ymdHis',$nowtme));
//自动生成文件名,由于 getUserID()函数定义在 userlogin.class.php 中,一
般无法调用,所以我们上传时指定新文件名
...(略)
}
$fullfilename = $cfg_basedir.$activepath.'/'.$filename; //文件上传到网站根目
 

 
$fullfileurl = $activepath.'/'.$filename;
move_uploaded_file($uploadfile,$fullfilename)         or    die(" 上 传 文 件 到
$fullfilename 失败!");
//⑥ PHP 的 move_uploaded_file() 函数 将上传的 文件 移动( 复制) 到新 位置 的
$fullfilename 文件。
 
与 include/dialog 目录其他文件不同,没有直接包含 config.php 文件(包含
config.php 文件时,会要求以管理员身份登录后才能继续访问),而是增加了语句①进行判
断$cfg_basedir 变量,如果没有定义则强制包含 config.php 文件,这样的意图是不允许直
接访问 select_soft_post.php 文件,但是这样做同样是危险的,一旦$cfg_basedir 变量已
经定义,将绕 过 config.php 文件的限制,具体的方法是以包含方 式调 用
select_soft_post.php。因为语句②过滤了正反斜杠,所以不能进行目录跳转,默认上传到
网站根目录。语句③进行允许$cfg_softtype 类型判断,因为正则表达式缺少“$”,所以
“.zip.asp”将满足条件,还可以将上传文件扩展名改为允许上传的类型,如 rar 等。语句
④判断新文件名是否包含“ .”,是则取新文件名的扩展名,语句⑤再次进行禁止
$cfg_not_allowall 类型判断,因为正则表达式缺少“i”,所以可以通过大写绕过,语句⑥
完成上传文件的复制。
包含方式调用 select_soft_post.php。由于语句①要求$cfg_basedir 变量必须初始化, 所以必须以包含方式调用 select_soft_post.php 文件,才能绕过 config.php 文件限制。分 析页面“/plus/carbuyaction.php”主要代码如下:

本页地址 http://www.jybase.net/wangzhananquan/20120412823.html

百度搜索更多

谷歌搜索更多

顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com