漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2014-082487
漏洞标题:酷狗旗下5sing可篡改订单(存在刷钱风险)
相关厂商:酷狗
漏洞作者: oldjiang
提交时间:2014-11-08 18:21
修复时间:2014-12-23 18:22
公开时间:2014-12-23 18:22
漏洞类型:设计缺陷/逻辑错误
危害等级:中
自评Rank:5
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2014-11-08: 细节已通知厂商并且等待厂商处理中
2014-11-12: 厂商已经确认,细节仅向厂商公开
2014-11-22: 细节向核心白帽子及相关领域专家公开
2014-12-02: 细节向普通白帽子公开
2014-12-12: 细节向实习白帽子公开
2014-12-23: 细节向公众公开
简要描述:
酷狗旗下网站,5sing存在可随意篡改订单金额bug,如果酷狗开放了用户账户余额直接购买功能,则存在刷钱风险。原因嘛,很简单,没有严格校验客户端传入参数。
详细说明:
闲来无事,手上也没有乌云账号,正好去转一圈,找找bug,来乌云上坑个邀请码(虽然是个小bug,也算是用心检测了一番)。
具体操作步骤很简单,请向下看。
首先,打开5sing的音乐商城,随便点开一个商品。以下是我的测试地址:
http://5sing.kugou.com/shop/seller/serveinfo.html?sid=52d4eb0e8ead0e59380b2f9a
好了,右侧有个购买区域,我们在购买数量输入框处输入一个负值,就-1吧。
咦?自动变回来1,并且给了个友好的提示。
好吧,我来个不友好的举动,直接在控制台用javascript改变这个数量为-1。
成功。
好了,我来试试提交,看看能不能提交。
哇,好高大上的提示!
没关系,他没用ajax在服务端验证,那我们就来把这个验证给去掉。
看代码:
哇!5sing的程序员可真够懒的,一个alert阻拦了多少英雄汉?
咱不上当,既然提供给了我们一个提交订单的url地址,直接构造url呗。
成功进入购物车页面,一个alert是阻拦不了千千万万个我的!
好吧,坑爹的数量又变成了1,是不是要放弃呢?
再来瞅瞅。
把数量再修改为-1。
好吧,服你了,老规矩,继续在控制台改。
经过测试,控制台直接修改数量无效,不再浪费各位看官的时间里。
那么是不是代表测试结束了呢?
不!还有招儿。
看网页源码,发现原来这个表单提交另有玄机,上代码:
我勒个深深的去!感情所有参数全在这里,那之前的步骤岂不是在白费工夫?
好吧,我表示之前所有数据的修改基本上作废,真正的好戏就要来了。
别的不说,直接修改订单总金额为-20,提交看看。
页面没有任何变化,这是在意料之中的。
不管三七二十一,直接提交。
哦了,订单提交成功,一个应付总额为-20元旦订单就产生了(如果5sing提供余额付款,凭借5sing这喜欢偷懒的程序员做法,岂不是可以直接刷余额?刷完再删掉,这样不就神不知鬼不觉了么?)
目前,5sing只提供使用支付宝付款,那么-20元是没有办法通过支付宝付款的,否则支付宝岂不是也被人刷余额了么?强大的支付宝不会那么弱。
那能不能想办法支付订单呢?
好吧,办法很简单,提交订单的时候,需要支付金额改成0.01,那么你只要支付0.01元,就能购买价值几十上百的产品。
好了,测试到此结束,希望5sing的程序员可以勤快点,多写几行代码就能解决问题。
另,希望乌云可以提供一个宝贵的邀请码,作为路人甲的我想注册个账号刷点存在感。
漏洞证明:
修复方案:
修复也很简单,不要相信客户端提交的数据。
首先用户提交的产品数量必须是要大于0的,小于0应该作废,这样不至于产生负总额。
其次,订单总额也不应该由客户端提交,应该是在服务端根据提交的产品规格和产品数量计算出订单总额,这样就不容易被篡改。
好了,本次测试完美结束,虽然没有给5sing测出什么大的bug,但也算是用心测试了一下。
ps:本人是5sing的忠粉,每天都会在5sing听歌,希望5sing越做越好。
版权声明:转载请注明来源 oldjiang@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:8
确认时间:2014-11-12 10:17
厂商回复:
谢谢提交,我们正在安排人除理!
最新状态:
暂无