浅谈漏洞思路分享-逻辑漏洞(支付系统篇)

admin 2024年1月5日23:33:27评论27 views字数 1612阅读5分22秒阅读模式

点击蓝字 关注我们

前言

本文仅限技术研究与讨论,严禁用于非法用途,否则产生的一切后果自行承担

渗透测试项目中网站哪里可能存在逻辑漏洞呢?

这里总结了三大类关于登录页面、会员系统、支付系统可能出现的逻辑漏洞情况,参考之前hackctf公众号里总结的逻辑漏洞位置一张图提供思路,内容比较多所以分开来写,同时参考网上文章及个人案例进行了总结补充,希望大家多多关注。

支付系统

0x01 特价商品数量篡改

比如限时特价商品仅限购1件,是否可以通过抓包将数量参数改成5件、10件后购买成功?

0x02 商品数量篡改

尝试修改购买商品数量值,抓包后,如果修改购买数量后,价格不变,或者修改购买数量为负数,如果价格为负数,同样会导致支付问题产生。

0x03 金额&积分&优惠券组合修改

如果优惠券、折扣券、积分等可以换取相应的物品,那么也有可能出现支付漏洞,这个流程与一般支付流程类似,可以尝试挖掘。

(1)修改优惠劵金额
具体看优惠券的兑换方式,如果的是满减型,那么就尝试修改优惠券的金额、修改商品价格等参数。如果是折扣类型,那么就尝试是否可以篡改加大折扣程度等。

(2)修改优惠券数量

(3)修改积分金额
修改积分金额与上面几点相似,同样是抓包判断能不能修改相关信息等。

0x04 越权支付

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

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

0x05 支付价格篡改

在支付流程中,提交购买信息、确认支付、确认购买的流程中,如果相互之间没有做好验证机制,就有可能出现修改支付价格的漏洞。
在这三个步骤中,可以尝试抓包,修改支付价格,看是否能成功,若是不成功,之前看文章还有一种思路可以尝试修改运费价格,将运费价格修改为负,通过放包后商品金额与运费金额相减以此来抵消商品价格。

0x06 多重替换支付

支付过程中,网站没有验证商品价格和用户的支付价格。

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

(2)修改支付商品id值、金额,假设:a商品价格是50元,id=1,b为200元,id=2,也可以修改a的金额为-50,然后a和b一起提交,看总金额是否是150。

0x07篡改支付状态

没有对支付状态的值跟实际订单支付状态进行校验,导致点击支付时抓包修改决定支付或未支付的参数为支付状态的值从而达到支付成功。

比如:购买A商品,支付时,bp抓包,观察包中是否有字段a来证明A商品是否被支付,支付参数=1时,代表支付成功,支付参数=2时,支付不成功,此时我们就可以修改a=1后放包,查看商品状态是否是已支付成功

0x08 注册-任意用户注册

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

试用类商品,产生多个订单并进行提交的校验,那么就可导致无限制刷牌子,每次提交的订单号不一样,相当于对同一个商品的多次试用的订单,如果存在逻辑漏洞的话,假设你全部申请退出试用,那么是否就会退相应数量的试用资格到你用户

0x09 试用接口问题

毋庸置疑,对于产品的试用,一个账户一般只能试用一次,如果接口1是试用接口,接口2是支付接口,抓包后将接口1改为接口2,如果接口存在逻辑处理问题,以试用价格去支付,就是可能为0元。

小结

这是逻辑漏洞系列中的关于支付系统第二篇,后续还会更新关于会员系统中可能存在的逻辑漏洞的地方,支付系统中可能存在逻辑漏洞的细节地方就有很多,所以大家一定要细心!

原文始发于微信公众号(渗透安全团队):浅谈漏洞思路分享-逻辑漏洞(支付系统篇)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月5日23:33:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   浅谈漏洞思路分享-逻辑漏洞(支付系统篇)https://cn-sec.com/archives/2369764.html

发表评论

匿名网友 填写信息