ECSHOP php商城系统过滤不严导致SQL注入漏洞
发布日期:2022-01-30 12:08    |    文章来源:源码之家
										
									
									
影响版本: 
ECSHOP 2.7.2 Release 0604
程序介绍:
ECSHOP是一款开源免费的网上商店系统。由专业的开发团队升级维护,为您提供及时高效的技术支持,您还可以根据自己的商务特征对ECSHOP进行定制,增加自己商城的特色功能。
漏洞分析:
在include_libcommon.php中存在如下函数
其中$id没有经过严格过滤就直接进入了SQL查询,导致一个SQL注射漏洞。
在系统的lib_order.php中存在一个该函数的调用
在flow.php中存在可控的输入源 
$package->package_id来源于输入
解决方案:
厂商补丁
ECSHOP
----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.ecshop.com
信息来源:
来源: WooYun
									ECSHOP 2.7.2 Release 0604
程序介绍:
ECSHOP是一款开源免费的网上商店系统。由专业的开发团队升级维护,为您提供及时高效的技术支持,您还可以根据自己的商务特征对ECSHOP进行定制,增加自己商城的特色功能。
漏洞分析:
在include_libcommon.php中存在如下函数
PHP Code复制内容到剪贴板
- functionget_package_info($id)
 - {
 - global$ecs,$db,$_CFG;
 - $now=gmtime();
 - $sql="SELECTact_idASid,act_nameASpackage_name,goods_id,goods_name,start_time,end_time,act_desc,ext_info".
 - "FROM".$GLOBALS['ecs']->table('goods_activity').
 - "WHEREact_id='$id'ANDact_type=".GAT_PACKAGE;
 - $package=$db->GetRow($sql);
 - /*将时间转成可阅读格式*/
 - if($package['start_time']<=$now&&$package['end_time']>=$now)
 - {
 - $package['is_on_sale']="1";
 - }
 - else
 - {
 - $package['is_on_sale']="0";
 - }
 - $package['start_time']=local_date('Y-m-dH:i',$package['start_time']);
 - $package['end_time']=local_date('Y-m-dH:i',$package['end_time']);
 - $row=unserialize($package['ext_info']);
 - unset($package['ext_info']);
 - if($row)
 - {
 - foreach($rowas$key=>$val)
 - {
 - $package[$key]=$val;
 - }
 - }
 - $sql="SELECTpg.package_id,pg.goods_id,pg.goods_number,pg.admin_id,".
 - "g.goods_sn,g.goods_name,g.market_price,g.goods_thumb,g.is_real,".
 - "IFNULL(mp.user_price,g.shop_price*'$_SESSION[discount]')ASrank_price".
 - "FROM".$GLOBALS['ecs']->table('package_goods')."ASpg".
 - "LEFTJOIN".$GLOBALS['ecs']->table('goods')."ASg".
 - "ONg.goods_id=pg.goods_id".
 - "LEFTJOIN".$GLOBALS['ecs']->table('member_price')."ASmp".
 - "ONmp.goods_id=g.goods_idANDmp.user_rank='$_SESSION[user_rank]'".
 - "WHEREpg.package_id=".$id."".
 - "ORDERBYpg.package_id,pg.goods_id";
 - $goods_res=$GLOBALS['db']->getAll($sql);
 - $market_price=0;
 
其中$id没有经过严格过滤就直接进入了SQL查询,导致一个SQL注射漏洞。
在系统的lib_order.php中存在一个该函数的调用
PHP Code复制内容到剪贴板
- functionadd_package_to_cart($package_id,$num=1)
 - {
 - $GLOBALS['err']->clean();
 - /*取得礼包信息*/
 - $package=get_package_info($package_id);
 - if(emptyempty($package))
 - {
 - $GLOBALS['err']->add($GLOBALS['_LANG']['goods_not_exists'],ERR_NOT_EXISTS);
 - returnfalse;
 - }
 
PHP Code复制内容到剪贴板
- $package=$json->decode($_POST['package_info']);
 - /*如果是一步购物,先清空购物车*/
 - if($_CFG['one_step_buy']=='1')
 - {
 - clear_cart();
 - }
 - /*商品数量是否合法*/
 - if(!is_numeric($package->number)||intval($package->number)<=0)
 - {
 - $result['error']=1;
 - $result['message']=$_LANG['invalid_number'];
 - }
 - else
 - {
 - /*添加到购物车*/
 - if(add_package_to_cart($package->package_id,$package->number))
 - {
 - if($_CFG['cart_confirm']>2)
 
$package->package_id来源于输入
解决方案:
厂商补丁
ECSHOP
----------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.ecshop.com
信息来源:
来源: WooYun
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。
									相关文章
														
														
														
														
														
														
														
														
														
														
									
									
									
								
                    关注官方微信