一、支付逻辑漏洞的呈现形式
- 充值的时候,程序只判断订单有没有充值成功,但没有判断金额,例如:生成订单跳至支付宝页面,在原网站上点支付失败,这时可以修改订单,改成更大的金额(订单号没变),回到支付宝支付页面,支付成功。程序并没有重新核对支付宝实际的金额,只是把订单改为
已支付。 - 使用余额支付,把数量改为负数,总金额也为负数,扣除余额时,负负得正,这时余额增加。 马哥教育
- 支付逻辑漏洞的几种常见类型:
(1)修改金额
(2)修改商品数量
(3)修改优惠金额
(4)修改数量、单价,优惠价格参数为负数、小数,无限大
(5)商品价格更改
(6)支付key泄露等
二、支付漏洞案例
- 漏洞环境
docker pull area39/webug
docker run -d -p 8082:80 -p 33060:3306 area39/webug
默认账号:admin/admin
数据库账号:root/toor
- 打开支付漏洞靶场
- 抓包
点击立即购买
通过截取数据包修改价格参数price为0.1,即可通过0.1元购买100元的商品
三、密码修改逻辑漏洞-越权修改账户密码
密码 root toor
选择webug这张表,查看用户名和密码
登录进去修改密码
抓包看一下
把id修改成2,密码修改成999;此操作通过低权限用户也可以实现,存在垂直越权漏洞
同时,该网站也存在旧密码校验不严格的问题