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

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

缺陷编号:wooyun-2013-024559

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

相关厂商:ShopEx

漏洞作者: Code_Sec

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

修复时间:2013-08-25 09:50

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

漏洞类型:文件包含

危害等级:中

自评Rank:5

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

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

详细说明:

http://bbs.webscan.360.cn/forum.php?mod=viewthread&tid=8613&extra=page%3D1
修复前:

t01e585264ecda97929.png


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

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);测试看
http://127.0.0.1/api.php?act=可控路径:cc

2013-05-26_210545.jpg


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

修复方案:

过滤代码往下移几行

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:6

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

厂商回复:

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

最新状态:

暂无