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

漏洞概要 关注数(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标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

登录用户可以冒充任意其他注册用户对任意商品发表评论,合理利用可操纵网店舆论

详细说明:

漏洞代码在comment.php的287行处:

code.jpg


$user_name = empty($cmt->username) ? $_SESSION['user_name'] : trim($cmt->username);
$cmt是一个json数据结构,在comment.php的37行处赋值:

code2.jpg


$cmt = $json->decode($_REQUEST['cmt']);
由此可见,这里只要用户提交了"username":"any user account"的json code,就能冒充任意用户发表对指定商品的评论!

漏洞证明:

为验证此攻击,我自己搭建了ECShop的网店,注册了两个账户,test以及test3,如下图:

users.jpg


然后以test登录,进入某个商品的界面,如下图:

comment.jpg


发表评论"test comment",此时用fiddle截获post,并强行添加"username":"test3"到提交的json结构中,如下图:

fiddle.jpg


评论发表后的结果如下图:

result.jpg


这里注意ECShop可以设置用户评论的发表是否需要管理员审核,当设置成不需要审核时,评论自动发表。即使设置成需要审核时,管理员也很难看出哪个评论是冒名提交的,哪个不是,如下图:

manage.jpg


看,管理员看见的,也是被冒名的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信息安全做的贡献
我们将尽快修复
非常感谢

最新状态:

暂无