免责声明
由于程序逻辑不严谨或逻辑太过复杂,导致一些逻辑分支不能正常处理或处理错误,统称为业务逻辑漏洞。常见的逻辑漏洞有交易支付、密码修改、密码找回、越权修改、越权查询、突破限制等,下图是简单的逻辑漏洞总结,在挖掘的过程中更多的时候需要脑洞大开:
挖掘逻辑漏洞的过程中,需要一些技巧和非常规思路,有点像边缘测试的思想。一般的思路是:
确定业务流程--->寻找流程中可以被操控的环节--->分析可被操控环节中可能产生的逻辑问题--->尝试修改参数触发逻辑问题
0X01:饮料贩卖机
替换订单ID,创建订单时在支付界面,在此创建订单替换订单ID(高价替换低价)
无限新用户优惠订单,重复创建优惠订单
替换优惠卷ID(未达到条件使用)
个别情况订单数量为1.99时,客户端只支付1元,实际上服务器认为支付了2元。
取货时并发(真实案例)
0X02:直播
快速进出房间炸房
无限发送点赞协议
修改礼物数量,0,小数,负数,特定值(一般情况下为1073741824)
修改礼物ID,遍历尝试是否有隐藏ID。
并发送礼物,抽奖
无限创建首次优惠订单,有些首次优惠订单是一个特殊的pid,这种的直接替换pid进行支付。有些是相同的ID,这种的提前创建订单,记录多个订单号在依次修改订单支付。
刷屏:发言刷屏,分享,点赞等有提示的地方刷屏
房间内可以申请的地方进行申请取消操作,看看是否能炸房。
越权踢人,增加管理员,关闭房间等操作。
发送的表情是否可以修改长宽(真实案例)
0X03 :购物app
购买数量:为0,小数,负数,正负值(A为-1,B为2,总值为1)
代金卷:并发领取,遍历领取,同一个代金卷重复使用,未满足条件使用代金卷
越权:登陆,操作别人订单,修改资料
0X04:外卖
商品数量,0,负数,小数,特定值,正负数(A为-1,B为2,总值为1)
送餐员评价修改,星级,打赏金额(小数,负数)
商品评价,星级,评论字数,上传图片是否可以自定义格式,
订单超出送餐地址
强行货到付款,取消订单,退款
越权操作别人订单,登陆
优惠购买会员(重复使用优惠购买)
0X05:交易平台
钱包并发提现,负数提现
使用钱包支付时多个订单并发支付(是否支付金额能大于余额)
转账负数,并发转账
上架商品突破限制,例如数量,字数。
替换订单,创建订单号如果订单状态可修改,先进到支付界面,然后将订单修改成更大的金额,然后支付提前进入的支付界面
数量修改
0X06:社交
强行举报(读取本地消息上传那种)
强行加好友(一般尝试重发通过好友这条协议)
自由修改号码(靓号类)
群管理无限禁言
越权禁言,替人,拉黑
会员修改金额,数量。无限优惠购买
非会员使用会员功能
0X07:漫画
打赏金额为负数,小数,特定值(溢出)
越权删除评论,登陆
修改充值金额
付费漫画免费看
评论图片数量过多会导致客户端加载卡死
0X08:音乐
唱歌类软件修改上传分数等参数
付费下载尝试替换下载ID
修改付费下载金额
F12查看下是否有歌曲地址
0X09:网约车
无限叫车,重复发送协议造成市场混乱
修改评价分数
修改限时优惠叫车关键参数
替换优惠卷
越权操作其他订单
业务逻辑漏洞需要对业务熟悉,有很强的逻辑思维能力,所以下面主要描述一下中注册、登录和密码找回出现的漏洞逻辑,再尽量多和全的收集整理相关场景。
查看更多的时候进行抓包
获取到id,这里可遍历全站id数据
点击查看的地方,抓包
修改为他人的
我们去验证一下
放包后可查看他人报名数据
点击时抓包修改为他人id,可越权查看他人的证书信息
保存的时候抓包
然后这个包的id改为刚刚测试人员的
直接越权查看,然后我们查看一下
发现已经越权修改成功