漏洞概要 关注数(14) 关注此漏洞
缺陷编号: WooYun-2013-25758
漏洞标题: EcShop冒充任意用户发商品评论,合理利用可操纵网店舆论
相关厂商: ShopEx
漏洞作者: 小点兵
提交时间: 2013-06-12 18:01
公开时间: 2013-09-10 18:01
漏洞类型: 设计缺陷/逻辑错误
危害等级: 中
自评Rank: 10
漏洞状态: 厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org
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信息安全做的贡献
我们将尽快修复
非常感谢
最新状态:
暂无
漏洞评价:
对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值