会员积分莫名激增-电商会员积分的坑|JavaDeb

本文正在参加「Java主题月 - Java Debug笔记活动」,详情查看活动链接>

XxQy.gif

电商系统常见的积分系统。那时候我还是个萌新。

所以你们知道有人用积分系统的漏洞恶意刷积分,疯狂用积分下单的时候,我这个萌新内心有多害怕吗??

4zgAm
20160323721086_IrOeKo.jpg

事情是这样的....
领导为了急着上线,没有严格测试就上了。而且积分系统刚上,所有人的积分根本就没多少,根据设计的获取积分的点,抵扣比例为100积分:1抵现,没有设计每笔订单的抵扣上限!!!!(为后面刷积分0元付款埋下一颗地雷....

那么,这个人是怎么利用漏洞刷到积分的呢?

利用了我写的一个低级漏洞,那就是反向刷积分,我后来复盘了一下这个大灰狼的操作手法。

描述

首先,描述一下我的积分系统的设计,在支付的时候会锁定用户输入的用于抵扣的积分,且抵扣积分不能超过目前所拥有的总积分。在订单取消的时候会退回积分。

我有一张表,记录当前用户的总积分和锁定积分。

就在这个时候,骚操作来了,首先,这个恶意攻击的人选择的是通过网站登录获取token,然后通过api直接调用我的订单接口,绕过前端的限制,在参数中填写了一个 负数,他反向用积分....

20190628675204_NCIpzl.gif

然后...然后....这个时候我给他锁了一个负的积分存进积分总表里面。按照设计,锁定积分要从可用总积分里面扣除,这个时候,自信一顿操作(判断当前输入的积分是否大于可用积分,自信回车)。然后从总积分减输入积分,根据数学基本法则,负负得正,减完他积分还变多了......

我那个时候是多么的一朵纯洁的白莲花,要被他这么欺负。

但是大灰狼还不满足,他不断断的刷。刷完就买最贵的产品。

20180830559634_DLMvAf.jpg

运营早上起来一看,哇哦,这么多订单。然后一看,哇哦,一分钱没收到....

20180213527418_uvxjAZ.jpg

最后能怎么办,根据大灰狼留下的电话,不出意外是个空号,地址远在海南。只能抓我萌新的我按头改代码。

首先第一,对输入积分做了判断(之前只有前端输入框做了限制,不能输入负数),小于0,大于可用的一律不通过,增加每笔订单的可用积分上限,可用比例与抵扣比例都改为后台设置。

最后

解决的方法其实很简单,bug其实也很低级。萌新的我经过这一次毒打,以后写代码碰到这种问题都异常小心,也算是因祸得福。

所以我是不是要感谢大灰狼? 不会的,打击就是打击,我才不要感谢路上的伤痛,毕竟这个时候只需要大佬一句提醒我可能就不需要承受这个伤痛。

你们说呢,大佬们,点个赞我说不定就能走个捷径呢?

20180710235079_RbhjvB.jpeg