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

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

缺陷编号: WooYun-2013-24559

漏洞标题: shopex绕过补丁本地包含漏洞#4

相关厂商: ShopEx

漏洞作者: Code_Sec

提交时间: 2013-05-27 09:50

公开时间: 2013-08-25 09:50

漏洞类型: 文件包含

危害等级: 中

自评Rank: 5

漏洞状态: 厂商已经确认

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

Tags标签: php文件包含

2人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-05-27: 细节已通知厂商并且等待厂商处理中
2013-05-27: 厂商已经确认,细节仅向厂商公开
2013-05-30: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2013-07-21: 细节向核心白帽子及相关领域专家公开
2013-07-31: 细节向普通白帽子公开
2013-08-10: 细节向实习白帽子公开
2013-08-25: 细节向公众公开

简要描述:

360提交的漏洞,官方修复不严谨

详细说明:

http://**.**.**.**/forum.php?mod=viewthread&tid=8613&extra=page%3D1

修复前:

t01e585264ecda97929.png



修复后(\core\api\shop_api.php):

code 区域
if ( isset($_REQUEST['appname']) ) {
$appName = preg_replace('/[^a-z0-1_~]/i', '', $_REQUEST['appname']);
} elseif ( strpos($apiAct, ':') > 0 ) {// request plugin api
list($appName, $apiAct) = explode(':', $apiAct);
} elseif ( 0 === strpos($apiAct,'shopex_') ) { // 照顾"商品助理"
$appName = 'goodsassistant';
}

if ( $appName && file_exists(PLUGIN_DIR."/app/{$appName}/api/api_link.php") ) {
$APIs = include PLUGIN_DIR."/app/{$appName}/api/api_link.php";
} else {// request traditional api
$APIs = include CORE_DIR.'/api/include/api_link.php';
}





看起来$appName = preg_replace('/[^a-z0-1_~]/i', '', $_REQUEST['appname']);已经过滤掉了,但是再往下看:list($appName, $apiAct) = explode(':', $apiAct);

可以通过变量$apiAct去给$appName赋值

漏洞证明:

die($appName);测试看

**.**.**.**/api.php?act=可控路径:cc

2013-05-26_210545.jpg



后面还有file_exists函数做检查,所以只对多域名的虚拟机危害较大

修复方案:

过滤代码往下移几行

版权声明:转载请注明来源 Code_Sec@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:6

确认时间:2013-05-27 12:10

厂商回复:

非常感谢您为shopex信息安全做的贡献
我们将尽快修复
非常感谢

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

登录后才能发表评论,请先 登录