Day73:WEB攻防-支付逻辑篇篡改属性值并发签约越权盗用算法溢出替换对冲

目录

SRC-支付逻辑测试

购买支付-修改数量&篡改价格&订单对冲

修改数量

篡改价格

产品替换对冲

订单替换对冲

购买支付-优惠券复用盗用&积分对冲溢出

优惠卷复用

优惠卷盗用

积分对冲溢出

SRC实战案例分享

越权让他人支付

四舍五入半价购

并发提前全签到

循环利用优惠卷

支付签约多逻辑


知识点:

1、支付逻辑-商品本身-修改-数量&价格&属性等

2、支付逻辑-营销折扣-优惠券&积分&签约&试用等

3、支付逻辑-订单接口-替换&并发&状态值&越权支付等

SRC-支付逻辑测试

支付逻辑常见测试:

  1. 熟悉常见支付流程:选择商品和数量-选择支付及配送方式-生成订单编号-订单支付选择-完成支付
  2. 熟悉那些数据篡改:商品ID,购买价格,购买数量,订单属性,折扣属性,支付方式,支付状态等
  3. 熟悉那些修改方式:替换支付,重复支付,最小额支付,负数支付,溢出支付,优惠券支付等
  4. 熟悉那些另类方法:无限试用,越权支付,并发兑换,四舍五入半价购,循环利用优惠券,支付签约逻辑等

支付逻辑挖掘:

  1. 找到关键的数据包:可能一个支付操作有三四个数据包,我们要对数据包进行挑选。
  2. 分析数据包:支付数据包中会包含很多的敏感信息(账号,金额,余额,优惠等)
  3. 要尝试对数据包中的各个参数进行分析。
  4. 不按套路出牌:多去想想开发者没有想到的地方,如算法拼接,关闭开启返优惠券等
  5. PC端尝试过,APP端也看看,小程序也试试

支付逻辑安全修复:

  1. 在后端检查订单的每一个值,包括支付状态;
  2. 校验价格、数量参数,比如产品数量只能为整数,并限制最大购买数量 ;
  3. 与第三方支付平台检查,实际支付的金额是否与订单金额一致;
  4. 如给用户退款,要使用原路、原订单退回。如:退押金,按用户原支付订单原路退回;
  5. 加密、解密、数字签名及验证,这个可以有效避免数据修改,重放攻击中的各种问题;
  6. 金额超过指定值,进行人工审核等。

购买支付-修改数量&篡改价格&订单对冲

 

修改数量

篡改价格

产品替换对冲

订单替换对冲

购买支付-优惠券复用盗用&积分对冲溢出

正常每个账户只能领取一次

优惠卷复用

分别使用优惠卷购买商品及不使用优惠卷购买商品并抓取两个不同请求订单数据包

此时第三次购买商品,并修改数据包把use_coupon=0改为use_coupon=4

优惠卷盗用

此时第四次购买商品,并修改数据包把use_coupon=0改为use_coupon=6

积分对冲溢出

如果在兑换余额上把兑换积分数改为-1会怎么样

SRC实战案例分享

越权让他人支付

参考文章:https://forum.butian.net/share/1125
 

四舍五入半价购

这个漏洞上次看小伙伴交的补天,获得了厂商1.2k的奖金,如何操作呢,我们来分析分析。我们以充值为例,余额值一般保存到分为止,那么如果我充值0.001元也就是1厘,一般开发会在前端判断我们的数字,或者将最后一位四舍五入,使用支付宝或者微信充值是直接报错的,因为第三方一般只支持到分(0.01)。

那我们如果充值0.019呢,由于支付宝或微信只判断到分,所以导致只能支付0.01,而由于我们支付成功,前端会将9四舍五入,直接变成0.02,所以等于直接半价充值。(这个漏洞京东也是有的,不过后来修复了。)

并发提前全签到

1、采用时间验证,修改当前设备时间绕过
2、未采用验证,直接修改数据包对应发包

循环利用优惠卷

支付签约多逻辑

大家都知道有些软件推出了新用户的会员签约功能,新的用户首次签约付费时能以低价购买会员,这个时候就尝试想白嫖多个月的低价会员了。于是开始第一次测试——使用支付宝打开签约界面,然后使用微信也同时打签约界面,然后再依次支付,支付后系统提示,无法重复签约。

我想难到系统有检测?舍不得孩子套不到狼,于是申请个新号再次进行测试:

  1. 还是同时支付宝和微信都打开了签约界面,但这次先签约其中一个比如先签约微信;
  2. 微信支付成功并签约完成后,在微信取消签约,然后再去支付宝点击签约;

这个时候奇迹就发生了,系统成功到账了2个月的低价会员!

也就是说服务器虽然校验了同一新用户不能同时多次低价签约,但是对于新用户同时发起的多个支付签约页面的请求,服务器没有校验解约后再次签约的情况,导致成功白嫖!以上的一个业务逻辑流程大致如下图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/758893.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python字典:打印字典中的键、值、打印所有字典、python遍历字典

1.定义 字典以花括号({})括起来,里面的元素是成对出现的,不同对元素用逗号(,)分开;一对元素用 冒号(:)分割。 2.解读 字典里的每一对元素准确的来说是键值对&…

javaSwing连连看

一、简介 基于java的连连看游戏设计和实现,基本功能包括:消除模块,重新开始模块,刷新模块,选择难度模块,计时模块。本系统结构如下: (1)消除模块: 完成连连…

python socket 实时通信,多对多,一对一,转发

研究一下python socket 实时通信,多对多,一对一,转发 C>S 单独通信 server1 import socket import threading# 在线客户端列表 online_clients {}def broadcast(message, sender):"""向所有在线客户端广播消息,除了发送…

面试算法-58-求根节点到叶节点数字之和

题目 给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。 每条从根节点到叶节点的路径都代表一个数字: 例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。 计算从根节点到叶节点生成的 所有数字之和…

2024年腾讯云优惠券全解析、云服务器代金券领取、查询和使用方法

腾讯云代金券领取渠道有哪些?腾讯云官网可以领取、官方媒体账号可以领取代金券、完成任务可以领取代金券,大家也可以在腾讯云百科蹲守代金券,因为腾讯云代金券领取渠道比较分散,腾讯云百科txybk.com专注汇总优惠代金券领取页面&am…

Dockerfile Docker Compose(实战总结)

Dockerfile & Docker Compose(实战总结) Dockerfile Dockerfile 是用来构建Docker镜像文件,是由一条条构建镜像所需的指令构成的脚步。 步骤: 编写Dockerfile 文件docker build 构建镜像docker run 运行镜像docker push 发…

python coding with ChatGPT 打卡第23天| 回溯算法:理论基础

文章目录 视频讲解回溯法的效率解决的问题如何理解回溯法回溯框架 视频讲解 回溯算法理论篇 回溯是递归的副产品,只要有递归就会有回溯。 回溯法的效率 回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,如果想让回溯法…

区域规划(Regional Planning)的学习笔记

目录 一、概念题 1.区域的概念、类型、特性 2.区域分析的概念、主要内容 3.自然环境、自然资源的概念 4.区域自然资源评价的内容 5.可持续发展理论定义 6.经济增长、经济结构定义 7.产业结构概念 8.人口增长分析的含义、指标 9.技术进步概念、类型 10.技术进步对区域…

【C++ leetcode】双指针问题(续)

3. 202 .快乐数 题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结…

ArcGIS Pro、R和INVEST:三位一体的生态系统服务评估框架

生态系统服务是指生态系统所形成的用于维持人类赖以生存和发展的自然环境条件与效用,是人类直接或间接从生态系统中得到的各种惠益。联合国千年生态系统评估(Millennium ecosystem assessment,MA)提出生态系统服务包括供给、调节、…

智慧水务:雨季山区水域水务智能化监控与监测管理方案

一、方案背景 雨季的水务管理对于各区县来说,无疑是一项至关重要的任务。夏季雨水充沛,江河湖泊水位上涨,山洪、上游排水等情况时有发生,给各地的水务设施和防汛工作带来了严峻的挑战。针对区县的各类水域监管场景,需…

免费的chatgpt网站(包含最新版4.0)

相信每个人在生活工作学习中都逃不过用chatgpt来解决一些问题,下面我长话短说,为大家简单介绍几款免费且好用的chatgpt网站 1、YesChat 网址:YesChat-ChatGPT4V Dalle3 Claude 3 All in One Free 第一个就给大家介绍一个狠角色,最…

C 语言中位取反操作符 ~ 和逻辑取反操作符 !

在 C 语言中,有两种取反操作符,分别是位取反操作符 ~ 和逻辑取反操作符 !。 位取反操作符 ~: 位取反操作符 ~ 是一个一元操作符,用于执行按位取反操作。它会将操作数的每个位取反,即将 0 变为 1,将 1 变为 …

算法打卡day21|回溯法篇01|理论知识,Leetcode 77.组合

回溯法理论知识 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。所以回溯函数也就是递归函数,指的都是一个函数。 回溯法的效率 回溯法并不是什么高效的算法。因为回溯的本质是穷举,…

win提权第二弹服务提权

阅读须知: 探索者安全团队技术文章仅供参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作,由于传播、利用本公众号所提供的技术和信息而造成的任何直接或者间接的后果及损失,均由使用者 本人负责,作者不为此承担任何责任,如…

使用STM32 再实现电动车防盗

项目需求 点击遥控器 A 按键,系统进入警戒模式,一旦检测到震动(小偷偷车),则喇叭发出声响报警, 吓退小偷。 点击遥控器 B 按键,系统退出警戒模式,再怎么摇晃系统都不会报警&…

3.6 条件判断语句cmp,je,ja,jb及adc、sbb指令

汇编语言 1. adc指令 adc是带进位加法指令,它利用了CF位上记录的进位值指令格式:adc 操作对象1,操作对象2功能:操作对象1 操作对象1 操作对象2 CF例如:adc ax,bx,实现的功能是:ax ax bx …

PyCharm中设置代码模版

前言 新创建一个.py文件后,我们总需要在开头写一些必要的代码,有什么方法能够一劳永逸,让这些代码自动生成呢? 有,它就是代码模版。 设置代码模版 这里先说说如何设置它。 步骤:首先打开PyCharm&#xff0…

MySQL介绍

一、MySQL数据库介绍 1、发展史 1996年 MySQL1.0 2008年1月16日 Sun公司收购了 MySQL 2009年4月20日 Oracle收购了Sun公司 MySQL是一种开放源代码的关系型数据库管理系统 使用最常用的数据库管理语言 SQL(结构化查询语言) MySQL是开放源代码的 因此所有…

【Kotlin】扩展属性、扩展函数

1 类的扩展 Kotlin 提供了扩展类或接口的操作,而无需通过类继承或使用装饰器等设计模式,来为某个类添加一些额外的属性或函数,我们只需要通过一个被称为扩展的特殊声明来完成。通过这种机制,我们可以将那些第三方类不具备的功能强…