记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

酷狗旗下5sing可篡改订单(存在刷钱风险)

2014-12-23 20:40

闲来无事,手上也没有乌云账号,正好去转一圈,找找bug,来乌云上坑个邀请码(虽然是个小bug,也算是用心检测了一番)。



具体操作步骤很简单,请向下看。



首先,打开5sing的音乐商城,随便点开一个商品。以下是我的测试地址:

http://5sing.kugou.com/shop/seller/serveinfo.html?sid=52d4eb0e8ead0e59380b2f9a



好了,右侧有个购买区域,我们在购买数量输入框处输入一个负值,就-1吧。



10.png





咦?自动变回来1,并且给了个友好的提示。



好吧,我来个不友好的举动,直接在控制台用javascript改变这个数量为-1。



code 区域
jQuery("#Num").val(-1);





11.png





12.png





成功。



好了,我来试试提交,看看能不能提交。



13.png





哇,好高大上的提示!



没关系,他没用ajax在服务端验证,那我们就来把这个验证给去掉。

看代码:

code 区域
$('.t_buy_b').click(function(){

var SI =$("#SI").val();

var LI =$("#LI").val();

var Q =$("#Num").val();

var url = '../buyer/order.html?SI='+SI+"&LI="+LI+"&Q="+Q;

alert("商城购买服务暂时关闭,敬请谅解");

//$(this).attr("href",url);

});





哇!5sing的程序员可真够懒的,一个alert阻拦了多少英雄汉?



咱不上当,既然提供给了我们一个提交订单的url地址,直接构造url呗。



code 区域
http://5sing.kugou.com/shop/buyer/order.html?SI=52d4eb0e8ead0e59380b2f9a&LI=1401007216&Q=-1





成功进入购物车页面,一个alert是阻拦不了千千万万个我的!



14.png





好吧,坑爹的数量又变成了1,是不是要放弃呢?

再来瞅瞅。

把数量再修改为-1。



15.png





好吧,服你了,老规矩,继续在控制台改。

经过测试,控制台直接修改数量无效,不再浪费各位看官的时间里。

那么是不是代表测试结束了呢?

不!还有招儿。

看网页源码,发现原来这个表单提交另有玄机,上代码:



code 区域
<form id="OrderForm" method="post">

<input type="hidden" id="SI" name="SI" value="52d4eb0e8ead0e59380b2f9a"/>

<input type="hidden" id="SLN" name="SLN" value="娱乐小样级"/>

<input type="hidden" id="AG" name="AG" value="0"/>

<input type="hidden" id="P" name="P" value="20"/>

<input type="hidden" id="PA" name="PA" value="20"/>

<input type="hidden" id="Q" name="Q" value="1"/>

<input type="hidden" id="F" name="F" value="0"/>

<input type="hidden" id="CO" name="CO" value=""/>

<input type="hidden" id="M" name="M" value=""/>

<input type="hidden" id="A" name="A" value=""/>

<input type="hidden" id="Z" name="Z" value=""/>

<input type="hidden" id="ME" name="ME" value=""/>

<input type="hidden" id="IA" name="IA" value=""/>

</form>





我勒个深深的去!感情所有参数全在这里,那之前的步骤岂不是在白费工夫?

好吧,我表示之前所有数据的修改基本上作废,真正的好戏就要来了。

别的不说,直接修改订单总金额为-20,提交看看。



18.png





页面没有任何变化,这是在意料之中的。



17.png





不管三七二十一,直接提交。



19.png





哦了,订单提交成功,一个应付总额为-20元旦订单就产生了(如果5sing提供余额付款,凭借5sing这喜欢偷懒的程序员做法,岂不是可以直接刷余额?刷完再删掉,这样不就神不知鬼不觉了么?)

目前,5sing只提供使用支付宝付款,那么-20元是没有办法通过支付宝付款的,否则支付宝岂不是也被人刷余额了么?强大的支付宝不会那么弱。

那能不能想办法支付订单呢?

好吧,办法很简单,提交订单的时候,需要支付金额改成0.01,那么你只要支付0.01元,就能购买价值几十上百的产品。



好了,测试到此结束,希望5sing的程序员可以勤快点,多写几行代码就能解决问题。



另,希望乌云可以提供一个宝贵的邀请码,作为路人甲的我想注册个账号刷点存在感。

漏洞证明:

以下是用户中心订单截图证明:



20.png





单价全部是20元,但是需要支付的金额却分别是-20,0.01和0。

修复方案:

修复也很简单,不要相信客户端提交的数据。

首先用户提交的产品数量必须是要大于0的,小于0应该作废,这样不至于产生负总额。

其次,订单总额也不应该由客户端提交,应该是在服务端根据提交的产品规格和产品数量计算出订单总额,这样就不容易被篡改。

好了,本次测试完美结束,虽然没有给5sing测出什么大的bug,但也算是用心测试了一下。



ps:本人是5sing的忠粉,每天都会在5sing听歌,希望5sing越做越好。

知识来源: www.wooyun.org/bugs/wooyun-2014-082487

阅读:94682 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“酷狗旗下5sing可篡改订单(存在刷钱风险)”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于累土;黑客之术,始于阅读

推广

工具

标签云