业务逻辑漏洞复现【练习】

支付逻辑漏洞

实验平台:damicms

漏洞描述及测试方法

实际上这个情况常见的情况有:

负值反冲、正负值对冲、甚至是直接修改数量单价、总价等等

  • 负值反冲,就是说程序没有校验订单的取值范围,若是使用负值则可以进行支付逻辑利用

  • 正负值对冲,通过修改订单的数量或者是单价、总价来达到少付钱的目的,但是你的值不能是负值

本案例为直接使用 burpsuite 抓包修改单价

修复方式

  • 服务器端在生成交易订单时,商品的价格从数据库中取出,禁止使用客户端发送的商品价格。

  • 服务器端在生成支付订单时,对支付订单中影响支付金额的所有因素(比如商品ID、商品数量、商品价格、订单编号等)进行签名,对客户端提交的支付订单进行校验。

案例

使用 damicms 注册账户,将商品添加至购物车

image-20231127161410924

使用 burpsuite 抓包,修改商品单价

image-20231127161506138

修改后放包,商品的价格被改为1元

image-20231127161902545

验证码问题

实验平台:pikachu 靶场

漏洞描述及测试方法

验证码使用后依然可以继续使用

修复方式

使用过一次验证码后,立即注销

案例

随机输入账号和密码,相应验证码,用 burpsuite 抓包,登录失败,验证码发生变化,将数据包发送到 Repeater 进行判断

将验证码设置为空,运行,出现错误提示,验证码不能为空

随机输入验证码,运行,出现错误提示,验证码不正确

经过判读,发现后台会对验证码进行校验,接下来对验证码是否在后台过期进行验证

获取一个新的验证码,返回数据包中,运行,提示用户名或密码不正确,接着修改账号和密码,验证码不变,运行,结果不变,说明验证码可重复使用

将数据包发送到 Intruder 模块,设置变量用户名和密码,验证码固定,使用 Cluster bomb 模式,进行爆破

image-20231115221340013

总结:

  • 验证码在后台不会过期,导致可以被长期使用
  • 验证码校验不合格,逻辑出现问题
  • 验证码设计过于简单和有规律

用户名枚举

漏洞描述及测试方法

在登录的时候,输入不存在的用户名和错误的密码,若是提示“该用户并不存在”,则证明该漏洞存在

修复方式

统一所有的提示信息为“用户名或密码错误”

案例

输入错误的用户名提示用户名不存在

image-20231127163820653

输入正确的用户名,仅提示密码错误

输入错误的用户名提示用户名不存在

[外链图片转存中…(img-769GZkQk-1701074457768)]

输入正确的用户名,仅提示密码错误

image-20231127163950290

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值