【Web攻防-30】业务逻辑篇&购买支付&篡改属性值&算法溢出&签约并发&四舍五入法&订单对冲

支付逻辑常见测试

熟悉常见支付流程

选择商品和数量-选择支付及配送方式-生成订单编号-订单支付选择-完成支付

熟悉那些数据篡改

商品ID,购买价格,购买数量,订单属性,折扣属性,支付方式,支付状态等

熟悉那些修改方式

替换支付,重复支付,最小额支付,负数支付,溢出支付,优惠券支付等

熟悉那些另类方法

无限试用,越权支付,并发兑换,四舍五入半价购,循环优惠券,支付签约逻辑等

羊毛省钱促销机制

新老用户差异,积分兑换制度,邀请分享绕过机制,红包渠道等


演示案例

数量和价格的篡改

最直接:数量和价格的篡改

原理:常理应该是从数据库中查询商品价格才进行订单生成,这里却以提交的数据包为准

当然,也可修改数量为0,0.001,-1

订单对冲

替换订单的属性值 — 低价购买高价

当修改价格和数量不起作用时,可以考虑替换部分请求参数

同时抓包5400元的大米手机cms和6000元大米测试产品的购买数据包,记录下参数值

将大米测试产品(贵)的请求参数(除数量和价格)替换到大米手机cms(便宜)的购买请求参数上

其他思路

如果可以搭建一个网站,源码一样,并且支付方式也是相同的(调用支付程序api相同),就可以像oauth的替换数据包那样的操作,造成支付到自己的网站上,并且返回支付成功的数据包,让目标网站以为支付成功了

优惠券

当使用了优惠券,达到上限后,可以尝试修改相关参数值,再次使用优惠券

  • 优惠券复用:重复使用优惠券参数值
  • 优惠券领取:猜猜优惠券参数相关逻辑,猜测规律,推算参数值

积分兑换

库存溢出

程序以库存为主计算价格

四舍五入

充值0.019,0.001

提现0.019,0.001等

支付逻辑如何挖掘:

找到关键的数据包

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

分析数据包

支付数据包中会包含很多的敏感信息(账号,金额,余额,优惠等)

要尝试对数据包中的各个参数进行分析。

不按套路出牌

多去想想开发者没有想到的地方,如算法拼接,关闭开启返优惠券等

PC端尝试过,APP端也看看,小程序也试试


支付逻辑安全修复

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

本节知识点

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

WEB攻防-购买支付-优惠券规律&积分对冲&库存溢出

WEB攻防-购买支付-四舍五入&签约并发&新老用户等

十二亿七千光年
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇