安全矩阵

 找回密码
 立即注册
搜索
查看: 4957|回复: 0

逻辑漏洞 | 支付漏洞学习

[复制链接]

991

主题

1063

帖子

4315

积分

论坛元老

Rank: 8Rank: 8

积分
4315
发表于 2020-10-29 19:15:38 | 显示全部楼层 |阅读模式
原文链接:逻辑漏洞 | 支付漏洞学习

快捷支付原理
商户网站接入支付结果有两种方式,一种是通过浏览器进行跳转通知,一种是服务器端异步通知
浏览器跳转
  1. 基于用户访问的浏览器,如果用户在银行页面支付成功后,直接关闭了页面,
  2. 并未等待银行跳转到支付结果页面,那么商户网站就收不到支付结果的通知,
  3. 导致支付结果难以处理。而且浏览器端数据很容易被篡改而降低安全性
复制代码
服务器端异步通知
  1. 该方式是支付公司服务器后台直接向用户指定的异步通知URL发送参数,采用POST或GET的方式。
  2. 商户网站接收异部参数的URL对应的程序中,要对支付公司返回的支付结果进行签名验证,
  3. 成功后进行支付逻辑处理,如验证金额、订单信息是否与发起支付时一致,验证正常则对订单进行状态处理或为用户进行网站内入账等
复制代码
常见支付漏洞
  • 修改支付的价格
    支付三步曲 —— 订购、订单、付款

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

  • 修改支付状态
  • 订单完成 —— 未完成(傻傻分不清)
    A 订单 - 0001 完成 ——B 订单 - 0002 未完成
    付款时尝试把订单 B 的单号给成订单 A
  • 其实也不局限于付钱:各种积分兑换之类也可以采用
  • 修改订单数量
    一支笔 1 块,买 0 支,或者买 - 1 支(不就等于免费了么?)
  • 修改附属值
    优惠劵

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

  • 例外就是 x 大佬,买商品,优惠券 x27 张(可怕。。。)
  • 越权支付
    这个大家比较了解吧

  1. 存在 user=id (123), 这种传参时,
  2. 尝试改改 id, 尝试用别人的钱包买自己的包包。
复制代码

  • 无限制试用
    比如试用的参数为 2,正常购买的参数为 1
    那么我们购买参数 2(试用),会发生什么呢?

支付漏洞如何挖掘
如何挖掘
  • 找到关键的数据包
    可能一个支付操作有三四个数据包,我们要对数据包进行挑选。
  • 分析数据包

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

  • 不按套路出牌
    多去想想开发者没有想到的地方
    pc 端尝试过,wap 端也看看,app 也试试。


防御方法
  1. 后端检查每一项值,包括支付状态。
  2. 校验价格、数量参数,比如产品数量只能为正整数,并限制购买数量
  3. 与第三方支付平台检查,实际支付的金额是否与订单金额一致。
  4. 支付参数进行 MD5 加密、解密、数字签名及验证,这个可以有效的避免数据修改,重放攻击中的各种问题
  5. 金额超过阈 (yu) 值,进行人工审核
复制代码

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

平台不让我充值。


传参一个负数试试。


反向充值失败,会返回


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


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


钱包贼满。





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-9-20 14:39 , Processed in 0.016447 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表