漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2013-025758
漏洞标题:EcShop冒充任意用户发商品评论,合理利用可操纵网店舆论
相关厂商:ShopEx
漏洞作者: 小点兵
提交时间:2013-06-12 18:01
修复时间:2013-09-10 18:01
公开时间:2013-09-10 18:01
漏洞类型:设计缺陷/逻辑错误
危害等级:中
自评Rank:10
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2013-06-12: 细节已通知厂商并且等待厂商处理中
2013-06-13: 厂商已经确认,细节仅向厂商公开
2013-06-16: 细节向第三方安全合作伙伴开放
2013-08-07: 细节向核心白帽子及相关领域专家公开
2013-08-17: 细节向普通白帽子公开
2013-08-27: 细节向实习白帽子公开
2013-09-10: 细节向公众公开
简要描述:
登录用户可以冒充任意其他注册用户对任意商品发表评论,合理利用可操纵网店舆论
详细说明:
漏洞代码在comment.php的287行处:
$user_name = empty($cmt->username) ? $_SESSION['user_name'] : trim($cmt->username);
$cmt是一个json数据结构,在comment.php的37行处赋值:
$cmt = $json->decode($_REQUEST['cmt']);
由此可见,这里只要用户提交了"username":"any user account"的json code,就能冒充任意用户发表对指定商品的评论!
漏洞证明:
为验证此攻击,我自己搭建了ECShop的网店,注册了两个账户,test以及test3,如下图:
然后以test登录,进入某个商品的界面,如下图:
发表评论"test comment",此时用fiddle截获post,并强行添加"username":"test3"到提交的json结构中,如下图:
评论发表后的结果如下图:
这里注意ECShop可以设置用户评论的发表是否需要管理员审核,当设置成不需要审核时,评论自动发表。即使设置成需要审核时,管理员也很难看出哪个评论是冒名提交的,哪个不是,如下图:
看,管理员看见的,也是被冒名的test3提交的评论!
当然,对于大量提交,在需要管理员审核的时候,ip地址是个问题,不过,攻击者可以用不同的代理服务器来提交不同的冒名评论,这样,ip地址也很难成为侦测这个攻击的线索了:-)
修复方案:
将代码:
$user_name = empty($cmt->username) ? $_SESSION['user_name'] : trim($cmt->username);
改为:
$user_name = $_SESSION['user_name'];
版权声明:转载请注明来源 小点兵@乌云
漏洞回应
厂商回应:
危害等级:低
漏洞Rank:3
确认时间:2013-06-13 11:48
厂商回复:
非常感谢您为shopex信息安全做的贡献
我们将尽快修复
非常感谢
最新状态:
暂无