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

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

缺陷编号:wooyun-2012-011066

漏洞标题:Ecshop存在诸多SQL注射漏洞

相关厂商:ShopEx

漏洞作者: blue

提交时间:2012-08-19 16:48

修复时间:2012-10-03 16:48

公开时间:2012-10-03 16:48

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:8

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

开源网店系统Ecshop存在多处的SQL注射漏洞,成功利用可以获取网店权限

详细说明:

flow.php

elseif ($_REQUEST['step'] == 'update_cart')
{
if (isset($_POST['goods_number']) && is_array($_POST['goods_number']))
{
flow_update_cart($_POST['goods_number']);
}
show_message($_LANG['update_cart_notice'], $_LANG['back_to_cart'], 'flow.php');
exit;
}


function flow_update_cart($arr)
{
/* 处理 */
foreach ($arr AS $key => $val)
{
$val = intval(make_semiangle($val));
if ($val <= 0 && !is_numeric($key))
{
continue;
}
//查询:
$sql = "SELECT `goods_id`, `goods_attr_id`, `product_id`, `extension_code` FROM" .$GLOBALS['ecs']->table('cart').
" WHERE rec_id='$key' AND session_id='" . SESS_ID . "'";
$goods = $GLOBALS['db']->getRow($sql);
$sql = "SELECT g.goods_name, g.goods_number ".
"FROM " .$GLOBALS['ecs']->table('goods'). " AS g, ".
$GLOBALS['ecs']->table('cart'). " AS c ".
"WHERE g.goods_id = c.goods_id AND c.rec_id = '$key'";
$row = $GLOBALS['db']->getRow($sql);
//查询:系统启用了库存,检查输入的商品数量是否有效
if (intval($GLOBALS['_CFG']['use_storage']) > 0 && $goods['extension_code'] != 'package_buy')
{
if ($row['goods_number'] < $val)
{
show_message(sprintf($GLOBALS['_LANG']['stock_insufficiency'], $row['goods_name'],
$row['goods_number'], $row['goods_number']));
exit;
}
/* 是货品 */
$goods['product_id'] = trim($goods['product_id']);
if (!empty($goods['product_id']))
{


仅仅全局对数组的值有处理但是没有对key处理造成漏洞

漏洞证明:

修复方案:

全局对key也处理!

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:8

确认时间:2012-08-19 22:26

厂商回复:

感谢您为Shopex信息安全做的贡献,
我们会尽快处理
非常感谢!!

最新状态:

暂无