当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-063202

漏洞标题:Mallbuilder(多用户商城) 三处包含漏洞

相关厂商:Mallbuilder

漏洞作者: ′雨。

提交时间:2014-06-03 12:23

修复时间:2014-09-01 12:26

公开时间:2014-09-01 12:26

漏洞类型:文件包含

危害等级:中

自评Rank:20

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-06-03: 积极联系厂商并且等待厂商认领中,细节不对外公开
2014-09-01: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

RT.

详细说明:

POST 做了全局转义 GET没有。。。

//-----------------------------------------------------------------
$fn=basename($_SERVER['SCRIPT_FILENAME']);
if($fn!='main.php'&&$fn!='shop.php')
@include_once($config['webroot'].'/lang/cn/front.php');
if(!empty($_GET['m']))
@include('module/'.$_GET['m'].'/lang/cn.php');
$tpl->assign("lang",$lang);


这里可控 截断掉后面的可直接包含任意文件。
第二处 在index.php中

$_GET['s']=!empty($_GET['s'])?$_GET['s']:'index';
$_GET['m']=!empty($_GET['m'])?$_GET['m']:'product';
if(!empty($_GET['m']))
{
$s=$_GET['s'];
$m=$_GET['m'];
if(file_exists($config['webroot'].'/module/'.$m.'/'.$s.'.php'))
{
if(file_exists($config['webroot'].'/config/module_'.$m.'_config.php'))
{
@include($config['webroot'].'/config/module_'.$m.'_config.php');
$mcon='module_'.$m.'_config';
@$config = array_merge($config,$$mcon);
}
if($s=='index'&&$m=='product')
{
@include($config['webroot'].'/config/home_config.php');
if($home_config)
@$config = array_merge($config,$home_config);
}
@include('module/'.$m.'/lang/'.$config['language'].'.php');
include('module/'.$m.'/'.$s.'.php');


include('module/'.$m.'/'.$s.'.php')这里包含了
第三处 在main.php中

if(!empty($_GET['m']))
{
$s=$_GET['s'];
if(!$shop_statu and ($s=="admin_product" || $s=="admin_product_list" || $s=="admin_product_storage" || $s=="admin_product_batch"))
{
$admin->msg('main.php','shop_statu','failure');die;
}
else
{
if(file_exists($config['webroot'].'/config/module_'.$_GET['m'].'_config.php'))
{
@include($config['webroot'].'/config/module_'.$_GET['m'].'_config.php');
$mcon='module_'.$_GET['m'].'_config';
@$config = array_merge($config,$$mcon);
}
if(file_exists("$config[webroot]/module/".$_GET['m']."/lang/cn.php"))
include("$config[webroot]/module/".$_GET['m']."/lang/cn.php");//#调用模块语言包


这里包含了include("$config[webroot]/module/".$_GET['m']."/lang/cn.php")
第四处在shop.php中

if(!empty($_GET['m'])&&!empty($_GET['action']))
{
if(file_exists("$config[webroot]/module/".$_GET['m']."/lang/".$config['language'].".php"))
include("$config[webroot]/module/".$_GET['m']."/lang/".$config['language'].".php");//#调用模块语言包


截断后可包含任意文件。

漏洞证明:

m1.jpg

修复方案:

GET也做个全局转义把。

版权声明:转载请注明来源 ′雨。@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝