闲聊:
前一阵子挖到一个比较有意思的漏洞,终于在2018年的最后一天修复了并且安卓如愿以偿升级到7.0.0,但是还有部分手机没有自动更新漏洞依然存在,因此想通过这篇文章让大家赶紧更新。顺便让大家通过了解此处微信支付的逻辑漏洞来更好地防范生活中各处可能存在的此类问题。
正题:
这次通过一个有意思的方式来给大家阐述该逻辑漏洞的触发方式以及利用方式
漏洞名称:微信支付业务二次支付逻辑漏洞
漏洞背景:通过生活中的某次支付(就是支付时发现银行卡没钱了TNT)发现此处的逻辑问题,进而测试并构建了略微苛刻的利用场景,为什么说苛刻是因为根据每个人的技巧实现起来的难度不一达不到通用的程度。
准备工具:安卓V6.7.3 移动客户端(7.0.0之前都存在此问题),绑定微信钱包的银行卡,不空的微信钱包。
现在就带大家走进今天的小剧场:
申明:本人骗术有限,如有雷同纯属太菜,希望大佬们踊跃发言,看看此处还能玩出什么高级花,帮助大家引以为戒,谢谢!
--Begin--
某一天风和日丽秋高气爽晴转多云
此时某装大佬A在群里说:我发现了一个微信支付的漏洞,利用这个漏洞能够从0余额的银行卡套现,想试试的小伙伴可以联系我。
围观群众B私聊A:大佬,你发现的这个漏洞真的能赚钱吗?
A:是的,成功之后你给我发个小红包,其余的我都返还给你
B:那需要做些什么准备吗?
A:你有微信绑定的银行卡吧,只需要提供空的银行卡即可,如果卡里有钱建议先转到你微信钱包里,不然会影响到漏洞的利用,一定要确保卡里一分钱都没有。然后再准备一个安卓手机就行了。
B:好了我准备好了,我将银行卡的钱转到钱包了。我们开始吧。
A:好的,首先你扫我的收款码,然后按照我的步骤来,每一步该怎么做我都会有截图指导你,你做完后截图反馈就好了,一共有四个步骤:
第一步扫描收款码 输入付款金额点击付款后点击零钱进入选择支付方式页面截图反馈
第二步选择与你微信绑定的银行卡 点击确认支付 输入密码会提示余额不足 截图反馈
第三步选择零钱支付 然后点击付款页面的使用密码 输一个错误的密码让付款失败 然后截图反馈
第四步这时候你会发现银行卡付款成功 截图反馈后会将提成微信直接转你。
B:大佬,我怎么没有看到你截图中的零钱支付故意输入密码的页面直接就支付了?
大佬开启了好友验证,你还不是他(她)好友。请先发送好友验证请求,对方验证通过后,才能聊天。发送好友验证。另附真实聊天环境如图:
从上述场景里便成功实现了当骗子利用漏洞诈骗的手法之一,逻辑漏洞的触发点相信大家已经看出来了,就是微信二次支付处的支付漏洞,我这里再给大家画图总结一下。存在漏洞的支付逻辑是这样子:
修复后的支付逻辑应该是这样子:
搞清楚了支付逻辑处的漏洞,便针对此场景构造了上述剧本来实现此漏洞,剧本中各别步骤也存在着双重目的:
第一步起初的付款金额可以设定为300,因为如果余额小于付款额在二次支付时是无法选择零钱支付的,还能够通过截图知道他零钱的余额,当余额过少时可以判断是适当调低付款金额或者诱导他充钱便于继续进行攻击,这里可以自行发挥。
第二步为正常流程。
第三步则是一个模拟步骤,因为存在此漏洞不可能有机会进入到输入密码的界面,这时候需要预先截取此步骤的图片发给他让他相信是要模拟失败支付来触发漏洞,然后就离成功不远了,试问大家这时的戒心还有几分?
第四步则是为了让他进一步相信第三步是成立的,然后一开始便明确有四个步骤即可。
如果按照上述手法针对特定的人群有很高的成功率,比如说爱占便宜的学生、好奇宝宝、褥羊毛党等等,转念一想我觉得如果描述得当甚至有可能骗到各位大佬^_^,想探究漏洞的原理便会心甘情愿的配合这个剧本。何况骗子一般都是打一枪换一个地方,广撒网重点培养,一个人可能赚个200-300,但是骗到很多人的话还是能骗到不少血汗钱的。虽然这个漏洞修复了以上问题不可能复现,但是如果将这点放大可以想想其他存在支付方式的地方是否也会存在此问题,同一种方法可能在多处适用。所以希望大家看到这个文章后多多转发,能让身边的人也了解到贴近生活的案例,最好是转发给做支付端研发的朋友们,从根源解决问题。
当然这个点可能还有多种手段来实现诱导多次支付,我是因为大学时期受骗过所以第一时间便联想到这个方面了,有独特想法的也可以在下面写出来提醒大家帮助大家防患于未然。
文章仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此作出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明!文系作者授权合天智汇发表,未经许可,不得转载。