简单支付漏洞之整数溢出

简单系列+1

先说原理。

一般在开发当中,商品的金额都会用int 型来定义,那么 int 的最大值为2147483647,可以尝试修改为2147483648。看是否造成整数溢出,有可能支付状态异常,从而导致支付成功。

溢出就是一个简单的循环,-2147483648到2147483647。

为了更直观理解,此题中设计的情况就是溢出循环,实战中更有可能是状态异常直接成功.

目标商品单价为2400元,那么简单计算,当商品数量为894785时,超过了2147483647,提交订单可以看到报错:

d2b5ca33bd20260102122132

猜测可能是由于金额为负数无法正确走到支付流程,我们的余额有1000,意味着我们要把最终订单金额溢出回正的1000元以内,经过计算,数量应该为:1789570

d2b5ca33bd20260102122354

 

请登录后发表评论

    请登录后查看回复内容