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

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

缺陷编号:wooyun-2015-0114326

漏洞标题:b2bbuilder 文件包含一枚(条件限制)

相关厂商:shop-builder.cn

漏洞作者: 路人甲

提交时间:2015-05-19 11:54

修复时间:2015-08-17 15:56

公开时间:2015-08-17 15:56

漏洞类型:文件包含

危害等级:高

自评Rank:11

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-19: 细节已通知厂商并且等待厂商处理中
2015-05-19: 厂商已经确认,细节仅向厂商公开
2015-05-22: 细节向第三方安全合作伙伴开放
2015-07-13: 细节向核心白帽子及相关领域专家公开
2015-07-23: 细节向普通白帽子公开
2015-08-02: 细节向实习白帽子公开
2015-08-17: 细节向公众公开

简要描述:

1rank

详细说明:

官网好像不提供下载了。测试版本为B2Bbuilder B2B网站管理系统 中文版本 http://down.chinaz.com/soft/24224.htm
b2bbuilder.php 28行
if(!empty($_GET['m']))
{
$_GET['s']=!empty($_GET['s'])?$_GET['s']:'index';
$s=str_replace('/','',$_GET['s']);
$m=$_GET['m'];
echo $m;
echo '222';
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');
最后这里,如果$m.html存在就include。典型的文件包含,需要截断利用。虽然需要一定条件,但是广大中小网站使用这种情况的都比较多。比如官方的demo网站
HTTP/1.1 200 OK
Date: Thu, 14 May 2015 07:55:15 GMT
Server: Apache/2.2.9 (APMServ) PHP/5.2.6
X-Powered-By: PHP/5.2.6
使用了apmserv套件,说明是windows服务器,php版本5.2.6
b2bbuilder有一个黑名单过滤。虽然这里用不到。还是看一下:
function inject_check($sql)
{
return preg_match("/(select|insert|delete|\.\.\/|\.\/|union|into|load_file|outfile|\'|%27|{|\()/i", $sql);// 进行过滤
}
这里过滤了../,因为这个文件刚好在根目录调用,所以不需要跳转目录。这种过滤也是存在问题的。比如..\就可以绕过。同样的。这处包含的前面几行也有一个过滤。
$s=str_replace('/','',$_GET['s']);
这里可以使用\来绕过。
上传图片或者包含日志之类。
http://192.168.199.138/b2bbuilder/index.php?m=uploadfile\userimg\size_small\test.jpeg%00

漏洞证明:

b2bbuilder1.png

修复方案:

过滤

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:2

确认时间:2015-05-19 15:55

厂商回复:

非常感谢

最新状态:

暂无