请注意,本文编写于 113 天前,最后修改于 104 天前,其中某些信息可能已经过时。

快捷支付原理

商户网站接入支付结果有两种方式,一种是通过浏览器进行跳转通知,一种是服务器端异步通知

浏览器跳转

  • 基于用户访问的浏览器,如果用户在银行页面支付成功后,直接关闭了页面,并未等待银行跳转到支付结果页面,那么商户网站就收不到支付结果的通知,导致支付结果难以处理。而且浏览器端数据很容易被篡改而降低安全性

服务器端异步通知

  • 该方式是支付公司服务器后台直接向用户指定的异步通知URL发送参数,采用POST或GET的方式。商户网站接收异部参数的URL对应的程序中,要对支付公司返回的支付结果进行签名验证,成功后进行支付逻辑处理,如验证金额、订单信息是否与发起支付时一致,验证正常则对订单进行状态处理或为用户进行网站内入账等

常见支付漏洞

  • 修改支付的价格

    支付三步曲 —— 订购、订单、付款

    三个步骤当中的随便一个步骤进行修改价格测试,如果前面两步有验证机制,那么你可在最后一步付款时进行抓包尝试修改金额,如果没有在最后一步做好检验,那么问题就会存在,其修改的金额值你可以尝试小数目或者尝试负数。

  • 修改支付状态

  • 订单完成 —— 未完成(傻傻分不清)

    A 订单 - 0001 完成 ——B 订单 - 0002 未完成

    付款时尝试把订单 B 的单号给成订单 A

  • 其实也不局限于付钱:各种积分兑换之类也可以采用

  • 修改订单数量

    一支笔 1 块,买 0 支,或者买 - 1 支(不就等于免费了么?)

  • 修改附属值

    优惠劵

    优惠劵其基本都是优惠,一般用优惠劵进行消费一般出现在第二个步骤当中:确认购买信息,在这个步骤页面当中,你可以选择相关优惠劵,然后直接修改金额大于或等于商品的价格就可以,或者直接修改其为负值进行尝试,最后进行支付,如果对这点没有加以验证,那么问题就会产生,直接支付成功

    例外就是 x 大佬,买商品,优惠券 x27 张(可怕。。。)

  • 越权支付

    这个大家比较了解吧

    存在 user=id (123), 这种传参时,尝试改改 id, 尝试用别人的钱包买自己的包包。

  • 无限制试用

    比如试用的参数为 2,正常购买的参数为 1

    那么我们购买参数 2(试用),会发生什么呢?

支付漏洞如何挖掘

如何挖掘

  • 找到关键的数据包

    可能一个支付操作有三四个数据包,我们要对数据包进行挑选。

  • 分析数据包

    支付数据包中会包含很多的敏感信息(账号,金额,余额,优惠),要尝试对数据包中的各个参数进行分析。

  • 不按套路出牌

    多去想想开发者没有想到的地方

    pc 端尝试过,wap 端也看看,app 也试试。

防御方法

  • 后端检查每一项值,包括支付状态。

  • 校验价格、数量参数,比如产品数量只能为正整数,并限制购买数量

  • 与第三方支付平台检查,实际支付的金额是否与订单金额一致。

  • 支付参数进行 MD5 加密、解密、数字签名及验证,这个可以有效的避免数据修改,重放攻击中的各种问题

  • 金额超过阈 (yu) 值,进行人工审核

超简单靶场

首先注册账号,来到页面。发现几个关键东西,我的订单、购物车、在线充值。

平台不让我充值。

传参一个负数试试。

反向充值失败,会返回

再找找其他关于商品的介绍,找到商品这里。

直接支付,会弹窗余额不足,我们反向充值,购买负数的数量。

钱包贼满。

作者:折月 z
文章来源:https://lyuan.co/posts/pay-vulnerbility.html

关注公众号:HACK之道

fiddler修改支付金额_支付漏洞总结相关推荐

  1. java怎么解决重复支付问题_支付系统设计中,如何防止重复支付?

    wallet-2292428_1280.jpg 在我们支付系统设计中,经常会遇到这样一个问题,防止用户重复支付.用户明明只想购买一次,却因为系统问题,导致重复支付,带来额外的物流成本和扯皮退货的运营成 ...

  2. fiddler修改支付金额_不容忽视的记账工具:支付宝记账

    上一篇文章我们说到,微信记账是一个省心省力省时间的好工具,但平时我们的支付手段可能不只有微信,最常用的还有支付宝,例如我们在双十一淘宝上购物的话基本上使用的是支付宝进行付款,因此为大家普及一下支付宝的 ...

  3. 使用fiddler修改支付金额,支付必测

    使用fiddler4先把网页拦截,修改服务器返回的参数,并把修改后的数据包发送给服务器,若该页面价格修改成功则是一个重大bug. 以下是操作流程: 一.拦截订单请求 方法一: 1.在下方命令行输入命令 ...

  4. PHP微信支付JSAPI网页支付Native原生支付

    微信JsApi网页支付链接(微信中打开):微信安全支付 微信Native原生支付产生二维码链接:微信扫描支付样例 资源下载路径:PHP实现微信支付,支付宝支付对接_支付对接如何设置-PHP文档类资源- ...

  5. 必测的支付漏洞(一)——使用fiddler篡改支付金额

    互联网产品中常会遇到支付功能,测试人员测试这部分功能时一定要重视,因为如果这部分出现了较严重的bug,将会给公司带来不小的经济损失!如果你测出了问题领导也一定会高兴的!因此测试优先级很高,但具有一定难 ...

  6. fiddler修改支付金额_Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解+代码

    师长说: 之前师长就发过一篇超详细的微信支付文章:一文快速实现微信公众号支付功能(详细版,建议收藏备用),有人就说要雨露均沾...支付宝的也要.好的,这篇同样超详细的支付宝支付收藏好了! 前言 本教程 ...

  7. 软件测试之第三方快捷支付_支付相关测试方法

    相关支付官方的文档: 支付的正常流程: 按照PRD,不赘述 支付的异常流程: 支付金额操作: 1.支付的余额小于待支付的钱 2.调起支付输入密码框后,不进行输入密码,是否会生成订单 3.调起支付输入密 ...

  8. 云付认证已通过可以支付吗_云支付常见问题

    支付接入流程相关 1. 什么样的应用可以接入支付? 已经签订收益补充协议的应用(详见合同与收益),才能接入支付. 2. non-hosting应用可以接入支付吗? 支付接入已支持non-hosting ...

  9. jsapi支付签名_微信支付小程序支付全流程

    点击蓝色字关注我们! 一个努力中的公众号 长的好看的人都关注了 本文给大家讲解微信小程序支付全流程,以及相关功能源代码,项目不开放,带来不便尽请谅解.小程序支付主要包含如下几步骤,1.预下单-调用微信 ...

最新文章

  1. 一劳永逸,iOS 自定义 ActionSheet 封装流程
  2. 操作系统学习:Linux0.12文件异步IO
  3. python内置属性类_Python内置类属性,元类研究
  4. Parallels 发布 Desktop 17版本,支持 Windows 11 和 macOS Monterey
  5. grafana-----Time Range Controls
  6. 2018大厂高级前端面试题汇总
  7. C语言题目:输出三角形面积和周长 (15 分)
  8. netty权威指南第二版源码
  9. 修改计算机管理员administrator的密码
  10. 浏览器被hao123篡改怎么办?
  11. 创宇蜜罐入驻华为严选商城,与华为云共同构建积极纵深防御体系
  12. python语言支持中文输出_python2输出汉字的解决办法暨python2/python3的编码环境参数的查看-Go语言中文社区...
  13. win10 电脑自带的便签在哪里
  14. Tkinter 插入图片背景
  15. 【mathematica画三维空间坐标系箭头】
  16. Frequent Pattern Tree 频繁模式数
  17. 单片机笔记十一:华大单片机
  18. Bert 论文中文翻译
  19. Office激活了提示非正版!
  20. 大一python期末考试难吗_python期末考试复习

热门文章

  1. 前端知识点总结——VUE
  2. ARMV8体系结构简介
  3. PostMan入门使用教程
  4. virtualBox文件共享
  5. 手机程序开发和测试关注点整理
  6. 女生做产品经理好吗_谁说女生不适合做产品经理?
  7. keil内存溢出表现_详细讲解C语言五大内存分区与可执行程序的三段(Text段、Date段、Bss段)【建议收藏】...
  8. python urlretrieve_使用urllib库的urlretrieve()方法下载网络文件到本地的方法
  9. java方法重载_在Python中该如何实现Java的重写与重载
  10. os2计算机网络,计算机网络 第二章 物理层