前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >逻辑漏洞挖掘之支付漏洞(刷钱、0元购)分析

逻辑漏洞挖掘之支付漏洞(刷钱、0元购)分析

作者头像
王先森sec
发布2023-04-24 17:31:29
1.9K0
发布2023-04-24 17:31:29
举报
文章被收录于专栏:王先森

支付漏洞简介

支付漏洞是 高风险漏洞 也属于 逻辑漏洞,通常是通过 篡改价格、数量、状态、接口、用户名等传参,从而造成 小钱够买大物 甚至可能造成 0元购买商品 等等,凡是 涉及购买、资金等方面的功能处 就有可能存在支付漏洞。文中如有错误的地方,还望各位大佬在评论区指正。

快捷支付原理

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

浏览器跳转通知

基于用户访问的浏览器,如果用户在银行页面支付成功后,直接关闭了页面,并未等待银行跳转到支付结果页面,那么商户网站就收不到支付结果的通知,导致支付结果难以处理。而且浏览器端数据很容易被篡改而降低安全性(这种方式数据经过了客户端浏览器,极大的可能性被第三方恶意修改)

服务器端异步通知

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

常见的支付漏洞

提前购买

  1. 攻击者发现预售商品,如:http://www.domain.com/mall/item/401
  1. 找到可以购买的商品,如:http://www.domain.com/mall/item/184
  2. 通过将goods_id改为401 然后提交

注:有些提前购买校验本地时间,可以通过修改本地终端时间来实现提前购买

修改订单金额

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

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

代码语言:javascript
复制
实例:
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2015-0112258
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2012-07293
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2016-0215059

修改支付模板

没有对支付模板的值跟实际订单支付状态进行校验,导致点击支付时抓包修改决定支付或未支付的参数为支付模板的值从而达到支付成功,有时候将商品价格修改为0.010.11元时,都会显示支付失败,这时通过选择低价商品价格来实现低价购买,也可以通过遍历选择处最低价格。

实例:

代码语言:javascript
复制
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2015-0102292

修改商品数量

商品没有对购买的数量参数进行限制,导致可随意修改,最常见的修改方式是改成 负数或者小数大人修改成儿童

案例1

  1. 分别选了一个26元和一个27元的U盘。
  1. 然后我吧26这个U盘数量改成了 “-1” 结果商品总金额变成了1元。如图
  1. 接下我选择了,在线支付,通过支付宝付款1元,然后奇迹就出现了。

案例2

  1. 跟团游模块,预定一个成人一个儿童票,可以看到一个成人票价是980
  2. 修改数据包,把成人票类型改成儿童票
  3. 然后就会发现支付金额380
代码语言:javascript
复制
相关实例:
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2015-0108134
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2012-07471
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2012-07738

无限制试用

通过修改 特殊传参(如:id,pay,test) 来达到无限制试用。

案例:

代码语言:javascript
复制
http://wooyun.2xss.cc/bug_detail.php?wybug_id=wooyun-2016-0188155

修改附属值

  • 修改优惠劵金额/数量
  • 修改积分金额
  • 修改运费金额
  • 修改赠送的数量/积分

越权支付

通过修改一些 特殊传参(如:id,username,openid) 来达到用他人的资金来干购买自己的商品。

实例:

https://forum.butian.net/share/1125

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 支付漏洞简介
    • 快捷支付原理
      • 浏览器跳转通知
        • 服务器端异步通知
        • 常见的支付漏洞
          • 提前购买
            • 修改订单金额
              • 修改支付模板
            • 修改商品数量
              • 案例1
              • 案例2
            • 无限制试用
              • 修改附属值
                • 越权支付
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档