支付漏洞
乌云案例之顺丰宝业务逻辑漏洞
案例说明
顺丰宝存在支付逻辑漏洞,可以允许用户1元变1亿元。这个漏洞在其他网站很难存在,原因是页面交互都使用了对字段做签名。但是顺丰宝没做签名,导致支付金额可以被修改为任意数值。猜测成因是开发人员为了快速实现功能,而忽略了其中数据签名的步骤。可以想象,如果我充值1个亿,然后再使用取款功能,会产生神马效果。
利用过程
1 登录顺风宝查看余额![逻辑漏洞之-支付漏洞[案例分析] - 图1](/uploads/projects/rustdream@ntdkl2/75ad862fe54b942e6efcbb30d3474f9a.png)
2 充值,选择招商银行。填写充值金额1,如下图:![逻辑漏洞之-支付漏洞[案例分析] - 图2](/uploads/projects/rustdream@ntdkl2/3b34893222b7ead971cfd72136d609f0.png)
3 开启firefox的tamper,点击支付,截取数据包,修改参数Amount为一分![逻辑漏洞之-支付漏洞[案例分析] - 图4](/uploads/projects/rustdream@ntdkl2/988427918a11c738a01eb4a09a127393.png)
乌云案例之乐视商城逻辑支付漏洞
案例说明
订单的价格在支付链接中出现,导致用户可以修改任意金额购买产品
利用过程
2 注意下面的连接,orderPrice参数为商品总额![逻辑漏洞之-支付漏洞[案例分析] - 图9](/uploads/projects/rustdream@ntdkl2/afd9bd587f228dcad5af0a3250908960.png)
乌云案例之读览天下支付逻辑漏洞
案例说明
通过替换支付订单号的方式,来完成花小钱买大东西。同时生成两个订单号,一个贵的一个便宜,首先支付便宜的,银行往回返回的时候,替换订单号,然后就可以完成两个订单的同时支付。
漏洞成因
服务端只检查支付是否完成,并没有确认订单金额与银行支付金额是否相同,过分信任客户端提交的数据
修复方案
乌云案例之天翼云盘通支付逻辑漏洞
案例说明
利用过程
2 提交订单然后我们抓包,将购买年限改成负数![逻辑漏洞之-支付漏洞[案例分析] - 图14](/uploads/projects/rustdream@ntdkl2/a34f421e8200961aee81e04252a220ca.png)
3 提交数据包后如图:![逻辑漏洞之-支付漏洞[案例分析] - 图15](/uploads/projects/rustdream@ntdkl2/56227bc59f0f84ca5456decfbc551e45.png)
乌云案例之药房网订单提交逻辑漏洞
案例说明
利用过程
乌云案例之淘美网绕过支付
案例说明
淘美网重置处存在逻辑漏洞,可绕过支付直接充值成功
经过测试发现支付成功后流程走至如下链接:
http://www.3need.com/index.php?controller=site&action=payok&out_trade_no=充值订单号
只要提供对应的充值订单号 就可以绕过支付直接充值成功。
利用过程
3 我们去充值,这个过程用burpsuite抓包,金额随意写![逻辑漏洞之-支付漏洞[案例分析] - 图22](/uploads/projects/rustdream@ntdkl2/f1db8c84043940fbe64f48da2a40e585.png)
乌云大神的修复方案
1 和银行交易时,做数据签名,对用户金额和订单签名。
2 敏感参数不要明文放在URL中
3 服务端效验客户端提交的参数
4 在服务端计算金额的时候,一定要判断是否为正数。
5 支付过程中加一个服务器生成的key,用户校验参数有没有被串改。
6 如果一定需要用URL传递相关参数,建议进行后端的签名验证
7 订单金额和充值接口返回的数据进行校验
8 提交订单时后台判断单价是否与数据库中相符,如不符则返回错误。
9 支付时应从服务器拉取数据,而不是直接读客户端的值!!
![逻辑漏洞之-支付漏洞[案例分析] - 图3](/uploads/projects/rustdream@ntdkl2/dbbe0b3a6af001827e29e17712923923.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图5](/uploads/projects/rustdream@ntdkl2/0153d198fedb7a17004fbc4cfab03346.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图6](/uploads/projects/rustdream@ntdkl2/42a418a8e4e4174efbdd7451c0557751.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图7](/uploads/projects/rustdream@ntdkl2/77b5763b6e75f7d8a6997aeb7c1481ad.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图8](/uploads/projects/rustdream@ntdkl2/0371925a8dd941da7b2c1065faa6ee1c.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图10](/uploads/projects/rustdream@ntdkl2/ca675d85477e50e166b490f37ecb9c06.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图11](/uploads/projects/rustdream@ntdkl2/a2fb0adabf0100c1b6e72faf8efed067.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图12](/uploads/projects/rustdream@ntdkl2/522500883297aad3c61825f885a7ba0d.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图13](/uploads/projects/rustdream@ntdkl2/9f46f53f92ecade9542d76fcc7b8b097.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图16](/uploads/projects/rustdream@ntdkl2/8a4661da1f29498c69501eb7fff48b75.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图17](/uploads/projects/rustdream@ntdkl2/0b142b78f06ac2b21195e963bd66b42f.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图18](/uploads/projects/rustdream@ntdkl2/cc678d24994879651d425c53b5af25da.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图19](/uploads/projects/rustdream@ntdkl2/c34a2b242e2ded6aa1c0264e66323dab.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图20](/uploads/projects/rustdream@ntdkl2/6a155c4afb7d964417faf97a4de1e70e.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图21](/uploads/projects/rustdream@ntdkl2/39fa5514c56645f339f648781201edd6.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图23](/uploads/projects/rustdream@ntdkl2/c97f91632e6d131176ec39b78a0b54ff.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图24](/uploads/projects/rustdream@ntdkl2/c858b22b2025873c992765b841fd8eba.png)
![逻辑漏洞之-支付漏洞[案例分析] - 图25](/uploads/projects/rustdream@ntdkl2/b2fc9221e1c4c9e024f2c9527a0d6847.png)
