学习记录-支付漏洞
注:文章仅用于学术交流,不用于其它用途
一、支付方式 1.通过浏览器跳转,比如银行支付成功后跳转到商家网站,商家才知道已支付,但是存在很大风险,中级可以通过改包篡改,现在基本很少存在这种方式 2.通过异步传输,付钱后支付商和商家有自己单独的联系通道,不用在浏览器上跳转
二、常见支付漏洞 常见支付漏洞:修改支付价格、修改支付状态、修改订单数量、修改代金卷和使用限制、越权支付、无限试用
1.修改支付价格 修改支付价格,主要是通过抓包,比如你买一个东西,标价1000,然后你发现数据包里面有1000的传参,然后改成了1,然后跳转到支付页面,我付了1将这个买下,也可以把金额改为负数
2.修改支付状态 比如你购买一个1000的商品,然后又购买一个10块的商品,两个订单号不同,然后你抓包,将1000块支付发送的数据包的订单号改为10块,然后付了10块钱,发现商品买到手了
3.修改订单数量 订单数量的操作一般都是负数,买一个贵的,几个便宜的商品,然后贵的商品的价格为-1,于是乎这个贵的商品的价格就是个负数,比如-1000, 然后我再买几个商品,加起来也是1000,那么计算总金额的时候就是0,于是乎0元购买了
4.修改代金卷 这里出发点,不在于商品本身了,核心在于代金卷,比如代金卷价格修改,或者数量修改
5.越权支付 越权支付,修改支付金额的用户id号,扣其他用户的钱
6.无限试用 比如支付一个东西,抓包后修改或者不修改不断重复请求,订单不断生成,比如试用购买的参数为2,正常购买的参数为1 那么我们正常购买参数篡改为2,就会无限制购买
三、如果传参被加密 尝试寻找解密规则,尝试对比两个相同格式、不同的传参值请求包寻找不同之处;如订单购买两个相同得价钱得不同商品,不同价钱相同商品数据包寻找传参漏洞
四、如何防御支付漏洞 1.后端检测一切传参 2.金额大的话人工审核 3.传参中不涉及金额 4.加密传参
五、个人总结 1.支付漏洞测试避免负法律责任,支付漏洞测试用较小的金额,一般控制在10块内,金额不要过大,而且测试成功后火速提交,不要留着 2.支付漏洞不仅仅WEB,有支付的地方如app都可能有