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

漏洞概要 关注数(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标签: 逻辑错误 设计缺陷

1人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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信息安全做的贡献
我们将尽快修复
非常感谢

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

  1. 2013-06-12 18:14 | 噬魂 ( 普通白帽子 | Rank:141 漏洞数:37 | 08安全团队)
    0

    这是什么原理。。。求解释

  2. 2013-06-12 18:20 | 小点兵 ( 普通白帽子 | Rank:126 漏洞数:13 | 周鹏:新加坡南洋理工大学,博士后;香港理...)
    0

    @噬魂 往数据库里写的时候,username没有强行指定session值,用户可以提交数据覆盖session值往数据库中写

  3. 2013-06-12 18:24 | VIP ( 普通白帽子 | Rank:774 漏洞数:100 )
    0

    看到标题我也找到了漏洞所在

  4. 2013-06-12 18:26 | 大肠精 ( 路人 | Rank:0 漏洞数:2 | 业余兴趣而已)
    0

    这种漏洞有什么意义。。。

  5. 2013-06-12 18:32 | 小点兵 ( 普通白帽子 | Rank:126 漏洞数:13 | 周鹏:新加坡南洋理工大学,博士后;香港理...)
    0

    @大肠精 @大肠精 操纵舆论不是很多蠕虫想干的事么?现在蠕虫都不用了,直接越权操纵舆论,把我卖的商品顶上去,同时还能说别人的商品的坏话,呵呵

  6. 2013-06-12 20:04 | 齐迹 ( 普通白帽子 | Rank:804 漏洞数:104 | 重庆地区招聘安全工程师。sec.zbj.com欢迎...)
    0

    目测会忽略。。真心不觉得是问题。

  7. 2013-06-12 20:50 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )
    0

    @齐迹 @小点兵 其实还是算越权把,但是对于用这些开源系统的用户来说,这个算业务问题

  8. 2013-06-12 23:08 | 小点兵 ( 普通白帽子 | Rank:126 漏洞数:13 | 周鹏:新加坡南洋理工大学,博士后;香港理...)
    0

    @齐迹 比如你在某以ECShop构建的购物网站注册,然后买了东西。若干天后,你再次登录,发现有人以你的名义在网站上多大量商品进行了评论。难道你认为这不是个问题?你还敢继续信任这个网站不?你还敢继续在这个网站上继续购物???

  9. 2013-06-12 23:10 | 小点兵 ( 普通白帽子 | Rank:126 漏洞数:13 | 周鹏:新加坡南洋理工大学,博士后;香港理...)
    0

    @小胖胖要减肥 是越权,问题出在代码上。运营网站的管理员无法修复。故不能算业务问题

  10. 2013-06-19 00:51 | 0x2b ( 实习白帽子 | Rank:51 漏洞数:12 )
    0

    这种漏洞有什么意思 我想知道下

  11. 2013-09-11 09:16 | 孤独男孩 ( 实习白帽子 | Rank:44 漏洞数:15 | 专注网络信息安全,漏洞发掘,代码审核,云...)
    0

    我先了解一下,试试先

登录后才能发表评论,请先 登录