什么是业务逻辑漏洞?
业务逻辑漏洞是指由于程序在设计和实现的过程中存在的缺陷,使得攻击者可以利用这些缺陷,诱使程序产生意外的行为,从而达到攻击的目的。业务逻辑漏洞通常不是由于代码本身的安全性问题导致的,而是由于程序的设计或者实现过程中的缺陷导致的。
举个例子来说,假设有一个电子商务网站,它允许用户购买商品,并且在用户下单之后会发送一条确认消息。但是,在这个网站中,可能存在一个业务逻辑漏洞,即攻击者可以利用这个漏洞,将自己购买的商品的价格设置为零,从而免费获取该商品。这就是一个典型的业务逻辑漏洞。
举例
-
暴力破解
-
任意用户/密码登录
-
短信/邮箱轰炸
-
验证码绕过/爆破/重放/回传
-
用户名/手机号枚举
-
越权登陆(例如修改数据包中用户ID
-
商品金额/数量篡改
-
整数溢出,int 最大值为2147483647
以上皆可以被称为业务逻辑漏洞
业务逻辑漏洞,pikachu靶场为例
验证码绕过
前端验证
正常步骤
随便输
点击login
直接弹出可能是前端验证,不能保证百分百
bp查看流量
输入一个正确的验证,查看流量用来验证
ctrl +r 发送到repeater模块
进行send重放
重放数据包后发现验证码可以重复使用
删除验证码
删除验证码后发现仍旧可以重复使用
总结:
首先根据浏览器要求输入好验证码,找到登录好的数据包之后,由于它是前端验证,我可以直接在抓到的包里面将其删掉,这来源于前端的验证码都存在一个验证码复用的问题,这不影响爆破操作。
后端验证
经典开局,正常输入,验证码输对
输对后的页面回显关键信息
bp查看流量
进行重放
重放后没有提示密码或者账户错误,给了个验证码输入错误
利用新验证码
利用新的验证码进行重放后,出现了页面之前显示的关键信息
修改账户密码
任意修改账户密码后,仍然可以使用
前端验证码做出变化
当前端验证码出现变化时,重放就不可以了,提示验证码错误
总结:
由于服务端在验证验证码的时候是根据前端验证码决定的只要不触发前端验证码的更改就可以实现验证码的无限复用。
修改商品0分钱
以PHP靶场里面大米cms为例
正常步骤
注册登录
email 要正常格式不然注册不了,因为它本身对邮件有个检查
找到商品页面
抓包修改
未改前
进行修改,然后放包
OK,被修改为0元。
提交成功
总结:
OK,想买的飞机的同学们可以尝试一下,不过大概率可能会吃免费饭。
没啥好总结的抓包修改放包。