随着社会发展,手机支付作为一种快速便捷的支付方式日益盛行,特别是扫描二维码俨然成为支付方式中一种比较常见的。然而,二维码支付给大家带来便利的同时,也给犯罪分子带来了可乘之机,利用二维码实施诈骗。诈骗方式也五花八门、多种多样,不法分子可谓是煞费苦心、无孔不入。
骗局1:静态条码被调换
随着支付宝和微信的推广,越来越多的小微商户使用静态条码作为收款码。一些不法分子会利用条码静态的特点,偷偷调换二维码,使得客户扫码所付资金最终流到了不法分子的口袋。
破解之道:消费者可在扫码后先向商家进行确认是否是该商户的账号,在商户确认后再向其账号进行汇款。
骗局2:收款码伪造虚假缴费二维码
不法分子利用一些“违章停车交罚款”“共享单车开锁”“网购退款诈骗”等用虚假二维码进行诈骗的情况,不法分子以便捷缴费等名义诱使群众转账汇款,,使得客户不小心就落入圈套。
破解之道:不要见码就扫,在收到水费、电费、罚单、网购退款等通知后,先通过电话等方式谨慎核实收款者身份,避免被不法分子借机骗取资金。
骗局3:条码中嵌入木马病毒程序
在生成的二维码中植入木马病毒程序也是不法分子对消费者实施欺诈的手段之一。消费者一旦扫了这些条码,手机便会不知不觉被他人操控,然后个人信息泄露、资产被盗刷各种安全问题随时都会发生。
破解之道:对不明渠道及来源的二维码要时刻保持警惕,不要进行扫码。
你说啥? 没那么简单?本忽悠就针对技术角度来给你造一个,看完,懂技术的,不懂技术的都蒙圈了。
咱先来看下扫码的技术实现:
支付宝二维码页面:https://auth.alipay.com/login/homeB.htm?redirectType=parent该页面请求之后会返回securityId(如web|authcenter_querypwd_login|2fb227a3-e5c0-469e-b27f-471b584cf070),barcode(如https://qr.alipay.com/plpyjknzdbjrluty4b)securityId主要是来给前端轮询二维码扫描状态的;而barcode是二维码中的字符串,给手机客户端扫描用的。轮询接口:https://securitycore.alipay.com/barcode/barcodeProcessStatus.json?securityId=web|authcenter_querypwd_login|2fb227a3-e5c0-469e-b27f-471b584cf070&_callback=light.request._callbacks.callback2二维码的状态信息有waiting(等待扫描)、scan(已扫描)、confirm(手机扫描之后点击确定登录)还有timeout(超时失效)。二维码扫描之后确认登录请求:https://mobile.alipay.com/scanResult.htm postdata:securityId=web|authcenter_querypwd_login|2fb227a3-e5c0-469e-b27f-471b584cf070
正常的流程是:
1.用户浏览器访问扫码登录页面,页面生成二维码并一直在轮询二维码状态;
2.用户用支付宝客户端扫描二维码,二维码状态变成scan,等待用户确认登录;
3.用户在手机上确认登录;
4.二维码状态变成confirm,浏览器实现以扫描手机的支付宝用户登录支付宝。但是在第三步,我们却可以构造一个页面进行登录你的支付宝!
好,我们根据这个逻辑来构造攻击
1.攻击者访问扫码登录页面,自己写个浏览器插件实时提取出里面的securityId和barcode,并更新securityId状态到本地,若timeout则刷新二维码;
2.攻击者从本地将barcode当字符串生成自己的二维码图片放在自己的网站上,js一直轮询本地的securityId状态;
3.受害者浏览器登录支付宝的前提下,访问攻击者页面,用手机支付宝客户端扫描上面的二维码;
4.js轮询到securityId变成scan,在一个隐藏iframe里提交form表单来做确认登录请求;
5.攻击者访问的扫码登录页面实现登录受害者的支付宝账号。
当然,这只是很简单的概括性,其中操作包含很多细节未公开,但是也可见,扫码也存在很多安全隐患,这就是为什么不要轻易扫别人二维码的原因,你觉得安全,是因为你还没碰到要搞你的人,网上一堆博士生硕士生也受骗,难道你觉得你会比他们更聪明? 本故事纯属博主忽悠,请根据事实判断,谨防受骗。