逻辑漏洞的挖掘与防范(二)

admin 2023年10月25日22:41:39评论18 views字数 2678阅读8分55秒阅读模式

  朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把LHACK安全“设为星标”,否则可能就看不到了啦!

逻辑漏洞的挖掘与防范(二)


  0x01支付漏洞简介


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


  0x02漏洞种类


  1、修改支付价格


  在支付过程中,购买商品通常分为三步骤:订购、确认信息、付款。你可以尝试在这些步骤中的任何一个来修改价格。如果前两步有验证机制,可以尝试在最后一步付款时抓包并尝试修改金额,甚至尝试小数或负数金额。


  2、修改支付状态


  一些漏洞可能涉及修改支付状态为已支付状态,绕过实际的订单支付状态验证,从而导致支付成功。虽然这个思路可能失败,但它是一个有趣的逻辑。


  3 修改购买数量


  在支付过程中,商品的数量也影响价格。修改数量为负数可能导致支付问题。


  4、修改附属值


  在这里我把附属值分为几类进行讲述。


  :修改优惠劵金额


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


  :修改优惠劵金额及业务逻辑问题


  可能你看到这个标题会想到,你不是上一个讲的就是这个修改优惠劵金额的问题嘛?为什么还要再讲一遍这个?请继续看!


  之前遇到过这个漏洞,这个漏洞也是逻辑问题导致了成功利用,同样在是在第二部确认购买信息当中有可选择优惠劵进行支付,但是,当你修改其优惠劵值为任意值或负值想要支付的时候,会回显支付失败,或者金额有误等一些提示,可能这时很多白帽子会很失望然后就会去其它点找问题了,但当你找到个人中心,点击订单详情,如果存在这个逻辑问题,那么此时在你刚刚修改优惠劵金额后点击下一步支付的时候,其实这时候就已经产生了订单了,你在订单详情内就可以看到支付金额为0,因为你刚刚修改了优惠劵金额嘛,然后你点击支付就可以支付成功。


  当然,这里还要说下小技巧,有可能会支付失败,但是如果你找到的这个问题是一个一般业务分站点,如果有自带的一个钱包功能,那么你就可以利用这个只带的钱包功能去支付这个订单,而不要利用其它支付类型,那么就可以支付成功!


  :修改积分金额


  有些网站有积分,比如你消费多少,评论多少就可以拥有一定的积分数量,这个积分可以在你付款的时候进行折扣其订单金额,如果这个没有做好积分金额的校验,那么当你在支付当中选择用积分为账户减一些金额的时候,可以抓包修改其积分金额为任意数或负金额,然后可0元支付成功。


  5、修改支付接口


  如果网站支持多种支付接口,修改支付接口为不存在的接口可能导致支付成功。


  6、多重替换支付


  通过在支付过程中创造两个不同订单,然后在抓包时将一个订单的价格替换为另一个订单的价格,可以购买物品以较低的价格。


  7、重复支付


  一些网站允许用户使用试用牌进行商品试用,而这个牌可以通过签到获得。如果没有对订单进行多次提交的验证,可以无限刷试用牌。


  8、最小额支付


  在很多师傅们测试支付的漏洞时候,修改的金额往往都是0.01等或者负数,我想说这很容易错失掉一些潜在的支付问题,我就深有体会,在挖掘支付漏洞的过程当中,就遇到过,直到第三次再一次检测时才发现,比如一些网站有金币或者积分什么就相当于支付可以用这些支付,那么在充值的时候,比如:10元对应的积分值为10050对应的是5000100对应的是10000


  这个问题如果你在充值时进行修改其支付金额为负数或者0.01等是会显示支付失败的,但是如果你修改其金额为1.00,那么支付就会成功,也就用1元购买到任意值得积分数量了,这是为什么呢?


  其实你在测试过程当中细心点就可以很好发现的,这里最低就是1元,1元对应100积分,而你如果修改为0.01,那么对应的积分就是空值了,所以会显示失败,而当你修改为1元,那么1元这个支付接口是存在的,其后面积分数为其它金额的积分数,然后跳转过去支付就会以1元购买到比它多得多的积分数量,也可以是任意积分值。


  9、越权支付


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


  10、修改优惠价


  比如一些商品有优惠价,优惠多少多少,那么在支付时抓包,修改这个优惠价就可造成支付问题的产生。


  0x03 总结(不常见思路)


  1、多线程并发问题


  可能很多白帽子知道,也有可能不知道,或者听说过,但是没有实际挖掘过,那么我相信,这个思路会让你们有新的挖掘方向了。


  现在可能还有一些大厂商存在该问题,多线程并发问题就是没有实时的处理各种状态所导致的问题,之前挖掘过刷钱问题,就是利用该思路,比如很多平台有自家的钱包,而这个钱包是一个迷你钱包,这个钱包作用也仅是用于这当前一个业务平台网站,在提现时,没有任何验证码或者校验机制,只要输入体现金额就可以提现,并且是秒到账,如果什么负数,修改金额都测试过了都不行,那么你就可以试试多线程并发问题,提现时抓包,比如我现在钱包内有0.1元,那么按理说每提0.01可以体现10次,也就是发送10次进程,但是利用这个问题可以达到多发现几次成功的进程,提现时抓包,然后把数据包发送到BurpSuite工具的Intruder当中,进行批量发送18次,然后可以看到成功的提现到了12次。


  2、总结


  支付漏洞一直是一个严重的问题,无论对于厂商还是用户,确保支付过程的安全性是每个安全从业人员的责任。我们应该积极发现问题并向厂商报告,同时厂商也需要更注重安全。发现问题并解决问题,让这个世界更安全。我以前也发过其他的逻辑漏洞,可以去看看:
逻辑漏洞的挖掘与防范(一) 
最后,非常大家去看一个网站中的文章,地址如下:
乌云(WooYun.org)历史漏洞查询---http://WY.ZONE.CI
为了解决各种小白师傅们获得更多的网安学习资料,找不到又没有门路,我建立了一个交流群,欢迎各位师傅们光临。(进群领福利)

逻辑漏洞的挖掘与防范(二)

原文始发于微信公众号(LHACK安全):逻辑漏洞的挖掘与防范(二)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月25日22:41:39
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   逻辑漏洞的挖掘与防范(二)http://cn-sec.com/archives/2144800.html

发表评论

匿名网友 填写信息