漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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
漏洞证明:
修复方案:
过滤
版权声明:转载请注明来源 路人甲@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:2
确认时间:2015-05-19 15:55
厂商回复:
非常感谢
最新状态:
暂无