前言
菜某的总结,如有错误和补充欢迎评论指正。
内容仅供学习使用,切勿用于非法用途。
支付篡改的存在位置与影响
首先他的危害不言而喻,几乎任何一个拿出来都能给企业带来巨大的损失。
他出现的地方也是十分的广泛,从某种意义来说,只要支付的功能越丰富,支付的种类越繁多,出现漏洞的几率都会越大。什么优惠卷,先到后付,现付,支付宝付款,微信付款,绑定卡号呀,活动抵消多少钱呀什么的,这种支付的功能全都可能产生支付的安全问题。
虽然主流的支付平台等的支付是相对安全的,但是如果用语法搜索一下,很多公司都会搭建自己的小网站去售货,这些网站的支付就非常的脆弱了,很容易出现一些漏洞。
支付篡改的挖掘
这种漏洞一般去看数据包就可以实现,一般传送数据包的话就会出现一些参数可以进行修改,修改几下看看付款页面是否出现变化就可以。
可进行篡改的支付内容
首先要提一句,有可能在数据包中是找不到一些参数的,比如某些固定的参数,如价格呀什么的,可能不会出现在数据包中,他们可能直接就在数据库中了,还有可能是用编号代替的,主要是连续二到三次选择数量,和商品种类,去辨别一下数据包的变化,有条件同一个商品点两下辨别一些类似于token或者验证码的随机生成的参数的干扰。
修改商品价格
这个是最常见的,但是我们买物品是有很多步骤的,我们可以在任意的位置进行数据包的修改,比如我们可以在选择商品环节进行价格篡改,也可以在最后的支付环节进行支付篡改。总之就是看他哪里没有验证就篡改哪里。
修改支付数量
数据包中也可能会有支付数量的数据包,一般是在选则商品之后,在支付之前。就是那个共计多少元的位置。建议抓两个不同数量的数据包对比一下,根据数据包去判断哪个参数是关于支付数量的,支付数量一般是都会发送数据包,因为这个是不确定的,但是他可能会检测数据库的存活,不要搞得太花。
值得注意的是
这个地方有时候可以尝试把数量改为负数,有的是可以白嫖的。
修改订单ID
商品都有一个订单号,有时候先弄一个比较贵的商品,然后再写一个比较便宜些商品,把便宜商品的数据包改为贵的商品的数据包就可以实现用便宜商品的价格买贵的商品。
修改商品号
跟修改订单ID同理,可以用别的价钱进行购买。
修改支付状态
我们有一定概率能够抓到支付状态的数据包,支付状态是用来判断支付是否成功的。我们可以把类似的0改为1,这类似的操作实现支付成功。
修改支付方式
他经常会有一些第三方的接口,例如微信支付,支付宝支付。
这个有点类似于ssrf,我们可以修改支付接口,让他指向我们自己的支付接口,从而实现自己给自己打钱。
其他支付功能的修改
有些支付功能比较多,类似于积分,优惠卷,打折等功能,都会存在被修改的风险。
1.优惠价格修改
2.修改积分
使用方法都是类似用抓包的方式去查看
越权支付
通俗理解:我让别人给我付钱
当然有些支付功能有找人付这种功能也有可能找到安全问题。
有时候数据包中会有一个user这类的参数,那就可以修改来实现别人付款。
(因为有些是第三方付款,有些网站是有自己的钱包的,这类的就不太会扫码支付,就容易实现这样的安全问题)
修改试用期
1.一种情况,他的试用3天日期接口为2,7天接口为3,购买接口为1.那么有时候改掉接口就会变成永久使用了
2.可能他直接就是发的明文参数,直接改个99999无限使用
多线程的问题
用于那种提现的环节。
通俗理解,就是提现的次数比实际的能体现的次数多。
比如我有100元,一次10元能提现10次,但是我快速多次发送提现能提14次,这种就是多线程问题。
案例演示
假设现在有一个网站,在售卖物品
买女友。
(图片仅供好玩,本靶场用不着这么多,他没商品号)
首先我们抓取购买女友的数据包
看到类似与数量和价格的参数,直接改了就行了
订单界面
完成女友便宜卖了。
值得注意的是,这是订单界面整个界面
下面还会发数据包
这个也可以改
当然这个靶场比较简单,实际有的改了不可以,需要把数量改成负数才可以,或者接口等。需要多打靶场实战练习。
(说实话,我一般不敢找这种支付的漏洞,怕出事)