前言
本公众号发布内容仅做学习研究使用,严禁利用发布技术进行非法渗透测试,由于传播、利用本文所提供的信息造成直接或间接的损失,均由使用者本人负责!本文可以自行转载,但转载需要在清晰的地方标明出处与作者。
01
什么是支付逻辑漏洞
随着各种支付软件的兴起,在web系统、小程序、app中都存在着一些第三方软件的支付接口,有些软件在使用这些接口时,对用户输入的参数未做校验,直接提交给第三方接口,导致一个订单的支付金额是可以被用户所控制的,从而可以将存在该漏洞的订单功能指定的金额进行修改,进而进行0元购或降价购买等操作。
02
支付逻辑漏洞的挖掘
在寻找支付逻辑漏洞时,需要多关注支付功能的数据包,看有没有可以修改的比较敏感的参数如金额、订单等参数,如修改之后失败提示金额错误,可以尝试进行联合多个参数一起修改,或者替换为另一个订单的金额数据。
03
支付逻辑漏洞的修复
-
对用户传递的金额参数与所购买服务指定的金额进行比对,比对成功才调用支付接口
-
不传递购买金额,写死在程序里
-
对于需要计算的金额做传递参数检查,检查参数的正负号
案例分享
某公众号有一个货币兑换的功能,既然是货币兑换,那就说明是存在支付功能的,咱们仔细盘一盘它
选好自己需要兑换的货币后,提交订单即可,这里我们是选择了300美金
ok,下一步就是进行支付了,咱们打开burp开始拦截支付数据包,发现数据包里有个好玩的参数嗷,money这单词师傅们都知道啥意思,直接修改微2,尝试低价购买
修改后发包,确实弹出支付窗口且支付金额仅为0.02元,成功用0.02元换到300美金,也是香香了
可以看到我的300美金已经配钞票了,师傅们快去挖属于自己的0元购吧(前提:请在授权情况下进行测试行为)
原文始发于微信公众号(宁云志科技):支付逻辑漏洞挖掘
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论