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

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

缺陷编号:wooyun-2014-076463

漏洞标题:B2Bbuilder 最新版任意文件包含

相关厂商:B2Bbuilder

漏洞作者: 路人甲

提交时间:2014-09-19 11:20

修复时间:2014-12-18 11:22

公开时间:2014-12-18 11:22

漏洞类型:文件包含

危害等级:高

自评Rank:20

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

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

过滤不完全导致任意文件包含

详细说明:

先看过滤函数:
function inject_check($sql)
{
return preg_match("/(select|insert|delete|\.\.\/|\.\/|union|into|load_file|outfile|\'|%27|{|\()/i", $sql);// 进行过滤
}
function magic()
{

if(!get_magic_quotes_gpc()&&isset($_POST))
{
foreach($_POST as $key=>$v)
{
if(!is_array($v))
$_POST[$key]=addslashes($v);
else
{
foreach($v as $skey=>$sv)
{
$_POST[$key][$skey]=addslashes($sv);
}
}
}
}

//===========GET
if(inject_check(implode('',$_GET)))
{
die('Invalid URL !');
}
//===========POST
if(isset($_POST))
{
foreach($_POST as $key=>$v)
{
if(!is_array($v))
{
if(strpos($v,'eval(')or(strpos($v,'$_POST[')))
die('Invalid POST');
}
}
}
}


在这里,对POST的数据进行了转义。 而对get的数据只是做了判断。 其中只是判断了get
请求中是否有../ ,在windows环境下,可以使用..\来作为目录。

在看b2bbuilder.php 文件中的代码:
if(!empty($_GET['m']))
{
$_GET['s']=!empty($_GET['s'])?$_GET['s']:'index';
$s=str_replace('/','',$_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);
}
@include('module/'.$m.'/lang/'.$config['language'].'.php');
include('module/'.$m.'/'.$s.'.php');
}
elseif(file_exists($m.'.html'))
include($m.'.html');
else
header("Location: 404.php");


先看$config['webroot'].'/module/'.$m.'/'.$s.'.php', 当m=.. 就会被重定向到网站根目录,由于没有过滤掉\ 这样利用s可以包含任意的php文件。利用%00截断功能,可以包含任意类型的文件。
也可以通过include($m.'.html'); 这个来包含,其没有过滤..\这种格式。

BaiduHi_2014-9-18_10-5-56.png


漏洞证明:

BaiduHi_2014-9-18_10-5-56.png

修复方案:

过滤\

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

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