逻辑漏洞概述

访问:
主体与客体之间的信息流动。主动的是主体,被动的是客体。

主体访问客体的四个步骤:
身份标识->身份验证(数据库匹配信息,判断身份是否合法)->授权(判断身份是谁,管理员或正常账户)->审计(记录操作)

访问控制模型:
自主访问控住(DAC 大部分使用):由客体的属主自主对客体进行管理,自主决定是否将访问权限授予其他主体。
强制访问控制(MAC 军方或重要政府部门用):安全策略高于一切,由管理员配置,访问控制由系统实施。
角色型访问控制(RBAC):使用集中管理的控制方式来决定主体和客体如何交互,更多用于企业中,根据不同的职位来分配不同的权限。

逻辑漏洞:
代码之后是人的逻辑,人更容易犯错,所以逻辑漏洞一直都在,而且由于逻辑漏洞产生的流量多数为合法流量,一般的防护手段或设备无法阻止,也导致了逻辑漏洞成为了企业防护中的难题。

逻辑漏洞分类:

  1. 验证机制缺陷
  2. 会话管理缺陷
  3. 权限管理缺陷
  4. 业务逻辑缺陷
  5. 登录缺陷
  6. 支付逻辑缺陷
  7. API乱用

验证机制
身份标识:whoknows、who has、who is
最常见的方式是信息系统要求用户提交用户名与密码。

权限控制:

从控制力度看,可以将权限管理分为两大类:

  1. 功能级权限管理
  2. 数据级权限管理
    从控制方向看,也可以将权限管理分为两大类:
  3. 从系统获取数据比如查询
  4. 向系统提交数据比如删除修改

业务逻辑
每个业务系统都具有不用的业务逻辑,而业务逻辑在人,充分了解程序员思维有助于找到其中的问题所在。
在这里插入图片描述

暴力破解
可利用多余的提示信息(登录失败存在的一些特殊提示信息)和可预测信息(类似user100、user101的用户名、手机号等信息或者初始密码)
弱口令攻击

无效的防重放措施
比如防止CSRF的token。可以利用Burp Suit Macros(宏)绕过。

无效的登录失败功能处理:

  1. 图片验证码绕过:验证码不生效、不更新、不失效,验证码可预测、删除、获取,验证码可识别,寻找其他登录页面。
  2. 短信验证码绕过:4/6位暴力破解,篡改手机号,篡改response。

在这里插入图片描述

会话管理问题

令牌(或是Request)具有含义的数据,如: 用户名称:user、admin、system 用户标识:0001、0002、0003 用户权限:admin、00101、01000