复制代码

3. 逻辑漏洞之支付漏洞

支付漏洞

乌云案例之顺丰宝业务逻辑漏洞

案例说明

顺丰宝存在支付逻辑漏洞,可以允许用户1元变1亿元。这个漏洞在其他网站很难存在,原因是页面交互都使用了对字段做签名。但是顺丰宝没做签名,导致支付金额可以被修改为任意数值。猜测成因是开发人员为了快速实现功能,而忽略了其中数据签名的步骤。可以想象,如果我充值1个亿,然后再使用取款功能,会产生神马效果。

利用过程

1 登录顺风宝查看余额

2 充值,选择招商银行。填写充值金额1,如下图:

 

提交之后如下:

 

3 开启firefox的tamper,点击支付,截取数据包,修改参数Amount为一分

 

4 提交跳转到招行支付

 

5 支付成功后,招行扣去一分

 

6 查询余额

 

乌云案例之乐视商城逻辑支付漏洞

案例说明

订单的价格在支付链接中出现,导致用户可以修改任意金额购买产品

利用过程

1 下单后选择支付,如图:

 

2 注意下面的连接,orderPrice参数为商品总额

 

3 将价格改成0.1

 

 

乌云案例之读览天下支付逻辑漏洞

案例说明

通过替换支付订单号的方式,来完成花小钱买大东西。同时生成两个订单号,一个贵的一个便宜,首先支付便宜的,银行往回返回的时候,替换订单号,然后就可以完成两个订单的同时支付。

漏洞成因

服务端只检查支付是否完成,并没有确认订单金额与银行支付金额是否相同,过分信任客户端提交的数据

修复方案

检查支付完成后价格和买的产品的价格是一样的。

乌云案例之天翼云盘通支付逻辑漏洞

案例说明

天翼云-云盘通设计缺陷,可提交负人民币的订单。

利用过程

1 选择套餐如图:

 

 

2 提交订单然后我们抓包,将购买年限改成负数

 

3 提交数据包后如图:

 

乌云案例之药房网订单提交逻辑漏洞

案例说明

药房网订单提交存在逻辑漏洞可对企业造成经济损失

利用过程

1 生成订单

 

2 使用Burp截断数据包,修改运费为一元

 

3 提交数据包

 

乌云案例之淘美网绕过支付

案例说明

淘美网重置处存在逻辑漏洞,可绕过支付直接充值成功

经过测试发现支付成功后流程走至如下链接:

http://www.3need.com/index.php?controller=site&action=payok&out_trade_no=充值订单号

只要提供对应的充值订单号 就可以绕过支付直接充值成功。

利用过程

1 新注册个账号进行测试

 

2 账号余额0

 

3 我们去充值,这个过程用burpsuite抓包,金额随意写

 

4 抓到支付订单号然后构造链接:

 

 

5 直接访问这个链接

 

6 接下来美女信息随意看了,不够再充

 

 

乌云大神的修复方案

1 和银行交易时,做数据签名,对用户金额和订单签名。

2 敏感参数不要明文放在URL中

3 服务端效验客户端提交的参数

4 在服务端计算金额的时候,一定要判断是否为正数。

5 支付过程中加一个服务器生成的key,用户校验参数有没有被串改。

6 如果一定需要用URL传递相关参数,建议进行后端的签名验证

7 订单金额和充值接口返回的数据进行校验

8 提交订单时后台判断单价是否与数据库中相符,如不符则返回错误。

9 支付时应从服务器拉取数据,而不是直接读客户端的值!!

 

 

                                                                                                                                                             -----------------文章来自微信公众号---信安之路

posted @ 2018-06-04 16:35  bmjoker  阅读(4117)  评论(0编辑  收藏  举报