web基础漏洞-逻辑漏洞

发布时间 2023-10-21 19:50:06作者: 挖洞404

1、介绍

逻辑漏洞是由于业务代码的逻辑缺失或者错误,导致的漏洞。

2、场景

2.1 可爆破可猜解

  • 弱账号密码
  • 验证码
  • 登录凭证cookie或token,以及访问口令
  • 优惠券id,图片id,博客id等
  • 找回密码的问答

2.2 步骤可跳过

(1)某功能分为多个页面/接口,可以直接请求后面的页面/接口

(2)某功能基于唯一页面/接口,由参数控制步骤,比如step参数,也可能由多个参数控制

简单的,可以直接burp拦截请求,进行篡改;对于复杂的过程,可以burp拦截响应,进行篡改,然后自动进行。

2.3 未检查数据的范围,或者未检查数据之间的关系

数据范围

  • 未验证用户昵称、备注、博客、上传文件名称、聊天室发言或弹窗,导致出现不合规的言论
  • 未有效检查字段的字符组成,导致出现敏感字符,为xss、sql注入等提供支持
  • 支付场景,未检查数据是否过大或过小,甚至为负数
  • 限时场景,未检查当前时间时间
  • 限定人数场景,比如报名场景、聊天室,未检查实际人数

数据关系

  • 典型的就是越权
  • 支付场景,支出或收入前后,商品实际单价与提交的单价
  • 登录场景中,获取的手机号与验证码,提交的手机号与验证码

2.4 可竞争

也称为并发测试,由于对数据库、文件等资源的多线程处理,未设置锁而导致并发问题。

测试时,可以是手工频繁请求造成多线程。但更准确的是由代码开多线程请求,对响应结果分析是否出现并发问题。

2.5 可重放

比如优惠券的使用,订单的取消退款,积分的兑换等

2.6 业务逻辑

比如可以领取多张限制的优惠券、优惠券叠加使用,退款包括优惠券金额等等

3、测试发现

(1)直接篡改请求

(2)篡改响应

(3)重放请求

(4)脚本测试竞争