支付漏洞

目测现在人们对其他逻辑漏洞的重视成都远不如这个支付漏洞啊

漏洞简介


支付漏洞可以说是很喜闻乐见的一种漏洞了,了解支付漏洞我们首先要了解以下快捷支付

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

§浏览器跳转

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

§服务器端异步通知

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

常见支付漏洞


修改支付价格

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

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

乌云案例: http://www.anquan.us/static/bugs/wooyun-2015-0112258.html

修改支付状态

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

  • A订单-0001完成——B订单-0002未完成
  • 付款时尝试把订单B的单号给成订单A

乌云案例: http://www.anquan.us/static/bugs/wooyun-2015-0102292.html

修改订单数量

很简单,就是本来一笔订单5块钱,可以尝试把订单修改为负数

乌云案例: http://www.anquan.us/static/bugs/wooyun-2015-0108134.html

freebuf案例: https://www.freebuf.com/vuls/212089.html

修改附属值(优惠劵

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

越权支付

例如:username=XXXXX,如果没有加以验证,其支付也是一次性支付没有要求输入密码什么的机制,那么就可以修改这个用户ID为其它用户ID,达到用其他用户的账号进行支付你的商品

无限制试用

例如:在支付的时候它URL后面的支付接口是3,而试用接口是4,那么此时你已经使用过了,复制下确认试用时的URL,修改后面的支付接口为3,那么此时就会调用购买支付接口,但是由于你本身这个产品就是试用的,其相应值绑定了这个试用商品,那么金额就肯定是0,那么最后点击支付,你就可以看到支付成功,试用成功,又重复试用了一次,然后他们的试用时间会累加在一起,这就导致了可无限制购买任何产品了

乌云案例: http://www.anquan.us/static/bugs/wooyun-2016-0188155.html

修改支付接口

例如:一些网站支持很多种支付,比如自家的支付工具,第三方的支付工具,然后每个支付接口值不一样,如果逻辑设计不当,当我随便选择一个点击支付时进行抓包,然后修改其支付接口为一个不存在的接口,如果没做好不存在接口相关处理,那么此时就会支付成功

多重替换

例如:首先去产生两个订单,这两个订单商品是不一样的,其价格不一样,如果服务端没有做好这相关的验证,那么在支付的过程当中抓包,修改其订单值为另一个订单值,最后支付,这时就可以用订单一的支付价格买到订单而的商品

较为新颖思路

重复支付和多线程并发问题

参考文章:https://www.secpulse.com/archives/67080.html

漏洞防御


  • 后端检查每一项值,包括支付状态。
  • 校验价格、数量参数,比如产品数量只能为正整数,并限制购买数量
  • 与第三方支付平台检查,实际支付的金额是否与订单金额一致。
  • 支付参数进行MD5 加密、解密、数字签名及验证,这个可以有效的避免数据修改,重放攻击中的各种问题
  • 金额超过阈(yu)值,进行人工审核
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值