支付宝支付时不验证签名的危害

来源:互联网 发布:中文错别字检查软件 编辑:程序博客网 时间:2024/04/29 11:47

在开发支付宝支付功能时,如果没在回调方法验证签名,有可能被刷钱,下面说下怎么造成的

场景:某个app有个充值功能,或者下单购买功能,假设用户选择的是支付宝支付。

切入口:支付宝的callback路径。通过伪装信息直接访问支付宝支付完成的回调路径,传入相应信息,如果app的服务端没验证签名,那有可能就被欺骗了,从而做支付成功的逻辑处理。

伪装信息如支付宝接口文档中的:

http://notify.java.jpxx.org/index.jsp?discount=0.00&payment_type=1&subject=测试&trade_no=2013082244524842&buyer_email=dlwdgl@gmail.com&gmt_create=2013-08-22 14:45:23&notify_type=trade_status_sync&quantity=1&out_trade_no=082215222612710&seller_id=2088501624816263&notify_time=2013-08-22 14:45:24&body=测试测试&trade_status=TRADE_SUCCESS&is_total_fee_adjust=N&total_fee=1.00&gmt_payment=2013-08-22 14:45:24&seller_email=xxx@alipay.com&price=1.00&buyer_id=2088602315385429&notify_id=64ce1b6ab92d00ede0ee56ade98fdf2f4c&use_coupon=N&sign_type=RSA&sign=1glihU9DPWee+UJ82u3+mw3Bdnr9u01at0M/xJnPsGuHh+JA5bk3zbWaoWhU6GmLab3dIM4JNdktTcEUI9/FBGhgfLO39BKX/eBCFQ3bXAmIZn4l26fiwoO613BptT44GTEtnPiQ6+tnLsGlVSrFZaLB9FVhrGfipH2SWJcnwYs=

其中需要修改的是:

1.订单号,通常打开支付宝支付之前,客户端会调用服务端接口创建一个订单信息,并返回订单号,这个需要做拦截才能拿到。

2.回调路径,这个路径有可能通过服务端返回给客户端的,这种情况可以尝试拦截获取,如果是写在apk中的,那就反编译获取。

拿到这两个信息后,可以修改下总价格total_fee,单价:price,数量:quantity

准备好以后,那就访问回调路径,同时传入伪装的所有信息。如果服务端没验证签名,那么此时服务端的金额可能已经修改。


写这个东西是为了告诉大家必须做验证签名功能,否则会存在很大隐患,也希望大家不要做非法用途,否则后果自负。

如果哪位大神有更深的研究,勿喷,请不吝赐教!

0 0
原创粉丝点击