支付宝支付时不验证签名的危害
2016-01-13 10:24
197 查看
在开发支付宝支付功能时,如果没在回调方法验证签名,有可能被刷钱,下面说下怎么造成的
场景:某个app有个充值功能,或者下单购买功能,假设用户选择的是支付宝支付。
切入口:支付宝的callback路径。通过伪装信息直接访问支付宝支付完成的回调路径,传入相应信息,如果app的服务端没验证签名,那有可能就被欺骗了,从而做支付成功的逻辑处理。
伪装信息如支付宝接口文档中的:
其中需要修改的是:
1.订单号,通常打开支付宝支付之前,客户端会调用服务端接口创建一个订单信息,并返回订单号,这个需要做拦截才能拿到。
2.回调路径,这个路径有可能通过服务端返回给客户端的,这种情况可以尝试拦截获取,如果是写在apk中的,那就反编译获取。
拿到这两个信息后,可以修改下总价格total_fee,单价:price,数量:quantity
准备好以后,那就访问回调路径,同时传入伪装的所有信息。如果服务端没验证签名,那么此时服务端的金额可能已经修改。
写这个东西是为了告诉大家必须做验证签名功能,否则会存在很大隐患,也希望大家不要做非法用途,否则后果自负。
如果哪位大神有更深的研究,勿喷,请不吝赐教!
场景:某个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¬ify_type=trade_status_sync&quantity=1&out_trade_no=082215222612710&seller_id=2088501624816263¬ify_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¬ify_id=64ce1b6ab92d00ede0ee56ade98fdf2f4c&use_coupon=N&sign_type=RSA&sign=1glihU9DPWee+UJ82u3+mw3Bdnr9u01at0M/xJnPsGuHh+JA5bk3zbWaoWhU6GmLab3dIM4JNdktTcEUI9/FBGhgfLO39BKX/eBCFQ3bXAmIZn4l26fiwoO613BptT44GTEtnPiQ6+tnLsGlVSrFZaLB9FVhrGfipH2SWJcnwYs=
其中需要修改的是:
1.订单号,通常打开支付宝支付之前,客户端会调用服务端接口创建一个订单信息,并返回订单号,这个需要做拦截才能拿到。
2.回调路径,这个路径有可能通过服务端返回给客户端的,这种情况可以尝试拦截获取,如果是写在apk中的,那就反编译获取。
拿到这两个信息后,可以修改下总价格total_fee,单价:price,数量:quantity
准备好以后,那就访问回调路径,同时传入伪装的所有信息。如果服务端没验证签名,那么此时服务端的金额可能已经修改。
写这个东西是为了告诉大家必须做验证签名功能,否则会存在很大隐患,也希望大家不要做非法用途,否则后果自负。
如果哪位大神有更深的研究,勿喷,请不吝赐教!
相关文章推荐
- UIScrollView循环滚动
- 心路(一)
- node.js初识
- ASP.NET数据绑定之Repeater控件
- 特殊排列的算法
- Swift中文教程(一)基础数据类型
- CodeForces 606A-A. Magic Spheres【模拟】
- java发邮件(1)
- TCP连接的建立(二)
- JAVA线程同步辅助类Exchanger-交换
- 对一个多态例题学习的一些思考
- cocos2d-x 卓上改变工程图标的步骤
- 用消息队列和消息应用状态表来消除分布式事务
- 免费午餐已结束:并发成为软件的基本转向
- UICollectionView
- MFC学习(22)MFC常用类:CFile文件操作类
- Jenkins学习笔记(一)
- Gradle for Android
- [FAQ17469]打开自动调节背光功能后,手动调节背光到最小,屏幕完全变黑
- NSUserDefaults  的用法