远方

远方的山水虽遥远,却在心中永驻,像一首美妙的乐曲,让人心醉神迷。

闲鱼新骗局,支付宝的大漏洞

随想 0 评 91 度

闲鱼上出现了一种哪怕是最身经百战的人也很有可能中招的骗局,利用支付宝的漏洞来进行行骗
具体步骤为:

  1. 在闲鱼上挂出一个价格极其诱人的商品
  2. 沟通之后,大冤种拍下商品
  3. 卖家说送价保或者运费保价或者1元运费或者运费险等等,并发送你二维码让你扫码
  4. 扫描二维码会直接跳转支付宝,看起来很正规.
  5. 当你点击支付之后就发现你的订单已经确认收货

页面类似为:

image-20230506204452733

从程序员的角度来看,骗子行骗的步骤为

  1. 先用支付宝 schema 打开第三方的网址:alipays://platformapi/startapp?appId=20000067&url=http://www.pianzi.com
  2. http://www.pianzi.com 的网页里面通过伪装的 0 元确认按钮事件触发: AlipayJSBridge.call("tradePay", { tradeNO: "2023042622001174211404250439" }, function(result) {});其中 tradeNO 对应的就是闲鱼的订单号.

这两个步骤中先通过步骤一绕过闲鱼的外链警告,再通过支付宝的确认收货的接口,直接确认收货

问题就是出现在支付宝提供的确认收货接口,这么核心的接口竟然没有鉴权!!!!!

在支付宝的H5开放文档中有具体的使用方法

// 调用此jsapi的时候,不要在当前页面有监听resume事件并在resume事件中强制刷新页面;
// 方法1为轻便模式,传入支付宝交易号等信息后,接口底层会补全默认内容,最终也会生成一个orderStr;
// 方法2为自定义模式,由业务方来指定拼接整个orderStr;

// 使用方法1 : 通过传入交易号唤起支付宝支付
// 适用范围  : 支付场景 + 已有支付宝交易号
AlipayJSBridge.call("tradePay", {
  tradeNO: "201802282100100427058809844", // 必传,此使用方式下该字段必传
  bizType:"xxx",                          // 非必传,默认为 “trade”
  bizContext:""                           // 非必传,默认为H5启动选项(safePayContext)
}, function(result) {
});


// 使用方法2 : 通过传入交易字符串唤起收银台相关服务(支付、渠道前置、独立绑卡等业务)
// 适用范围  : 支付(有无支付宝交易号都可以使用)、渠道前置、独立绑卡等业务
AlipayJSBridge.call("tradePay", {
  orderStr: "xxxxxxxxxxxxxxxxxx"          // 必传,此使用方式下该字段必传
}, function(result) {
});

按道理来讲,业务的核心接口让第三方使用时,是需要将第三方的链接加入到白名单中才能使用的,目前我接过微信支付是这么做的,需要在微信支付的后台添加白名单.这样可以最大程度保护客户的资金安全.

我以前还挺烦微信支付的各种域名、路径以及签名之类的校验的,现在看来这个还是有必要的。

这口锅,闲鱼和支付宝一半一半.

希望有个好结果
快来做第一个评论的人吧~