乌云(WooYun.org)历史漏洞查询---http://wy.zone.ci/
乌云 Drops 文章在线浏览--------http://drop.zone.ci/
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");//#调用模块语言包
截断后可包含任意文件。
GET也做个全局转义把。
未能联系到厂商或者厂商积极拒绝