注:文章内容仅供参考学习,任何人不得用于非法测试。请遵守国家法律,做一个守法的良好公民。
这不马上双十一了吗?不晓得各位兄弟姐妹们钱包准备好了没啊。曾经也想着要是买东西能不付钱啥的该多好,今天就给各位介绍介绍如何去查看某些商城是否存在着支付漏洞。
支付漏洞一直是企业中一个高危的风险,是逻辑不严谨造成的,也归类于逻辑漏洞,凡是存在支付交易的地方都有可能存在支付漏洞,挖支付漏洞一般一个抓包软件就够了 Burpsuite 或者 Fiddler,相信各位师傅一定有自己趁手的工具,这篇文章对支付漏洞思路做一个小结。
0x01.修改支付价格
这个是最常见的,一般在支付当中,选择完要购买的商品,确认支付的时候,用抓包软件抓包,有些支付接口抓包的时候可能存在干扰包,一定要细心观察是哪个数据包,定位到这个数据包,直接修改支付金额。0.01或者1,或者负数。都可以一一尝试。修改完之后直接放包观察是否修改成功。
0x02.修改运费或者物品数量
有时候在修改支付价格的时候不行,就可以尝试修改一下运费或者物品数量,修改方式都可以参考第一个思路,有些企业在做支付漏洞的防范时可能只着重了支付金额的逻辑,并没有对运费以及数量做相关限制。
0x03.整数溢出
一般在开发当中,商品的金额都会用int 型来定义,那么 int 的最大值为2147483647,可以尝试修改为2147483648。看是否造成整数溢出,有可能支付状态异常,从而导致支付成功。
0x04.修改支付账户
有时候在测一些有钱包的站或者直接从个人账户扣款的站时,可以观察下支付包代表的是账户 id,可以尝试修改 id。可以理解成越权让别人帮你支付漏洞。(当然也有可能越权帮别人支付订单)。
0x05.并发操作
这个思路就是在买一个商品的时候,支付操作抓包,高并发环境下反复多次购买,有可能会造成比如10块钱的东西,高并发操作下,花10块钱买了很多个。高并发在很多操作下都很适用。
0x06.修改优惠券金额
在挖支付的时候,大多都是些 p2p,商城之类的,一般都会存在优惠券之类的,可以在支付的时候尝试修改优惠券金额或者数量,看下是否可以造成0元购买甚至负数购买。这个套路在一些积分抵扣之类的都可以用。
0x07.替换商品id
这个也是比较常用的一种思路,有些时候在测支付的时候,可以抓其他商品包看一下这个商品的 id 是多少,比如抓一个便宜的商品,获取到 id 保存下来,然后找一个贵的购买抓包替换下 id 看下是否金额会变化。
0x08.修改支付状态
这种漏洞属于比较奇葩的,在前端进行验证,但是还是个别站会有,在点击购买之后抓返回包,一般看返回包中包含 flase 或者0之类的可以改成 true 或者1。就有可能绕过前端验证,购买成功。
下面给出一个在某平台众测挖到的一个案例,就是利用了第一个思路:
首先来到他的商城主页,可以看到都是一些体检项目,可以网上购买的,首先想到的就是支付漏洞,直接 burpsuite 一把梭。

这里我们随便选择个商品,点击立即购买。

抓包,分别将图片中的那两个数据包的金额参数修改,经测试,可以修改成任意金额,这个地方有个问题,就是在支付的过程中有两个请求包都是校验了商品的价格的,需要分别将两个数据包都改掉。
很多时候都能碰到这种情况,或许是干扰包,反正一个一个的反复测试。


为了方便测试,我改成0.01,然后放包,直到页面跳转到支付界面,发现成为了0.01,点击支付。支付成功。完成任意金额购买商品。



都是些常见支付漏洞挖掘思路,希望这遍文章能对漏洞挖掘的你有一些帮助,拓宽你挖掘漏洞的思路,一定要坚持,有耐心,不断测试。说不定下一个思路恰好就没做防护,就挖到了呢?

本文分享自微信公众号 - 黑白天(li0981jing)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。