ECSHOP php商城系统过滤不严导致SQL注入漏洞

2023-12-04 0 716

影响版本: 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;
  • }
  • 在flow.php中存在可控的输入源

    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

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 脚本攻防 ECSHOP php商城系统过滤不严导致SQL注入漏洞 https://www.u-9.cn/security/gongfang/71090.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务