avatar

web渗透学习笔记[七]--逻辑漏洞/业务漏洞

逻辑漏洞/业务漏洞

逻辑漏洞是指由于程序逻辑不严导致一些逻辑分支处理错误造成的漏洞。

在实际开发中,因为开发者水平不一没有安全意识,而且业务发展迅速内部测试没有及时到位,所以常常会出现类似的漏洞。

水平权限漏洞一般出现在一个用户对象关联多个其他对象(订单、地址等)、并且要实现对关联对象的CRUD的时候。开发容易习惯性的在生成CRUD表单(或AJAX请求)的时候根据认证过的用户身份来找出其有权限的被操作对象id,提供入口,然后让用户提交请求,并根据这个id来操作相关对象。在处理CRUD请求时,往往默认只有有权限的用户才能得到入口,进而才能操作相关对象,因此就不再校验权限了。可悲剧的是大多数对象的ID都被设置为自增整型,所以攻击者只要对相关id加1、减1、直至遍历,就可以操作其他用户所关联的对象了。

安装逻辑

是否能够绕过判定重新安装

是否能够利用安装文件获取信息

是否能够利用更新功能获取信息

交易过程

1.1 购买

  • 修改支付的价格
  • 修改支付的状态
  • 修改购买数量为负数
  • 修改金额为负数
  • 重放成功的请求
  • 并发数据库锁处理不当

1.2 业务

  • 刷优惠券
  • 套现

账户注册修改

1.1 注册

  • 覆盖注册
  • 尝试重复用户名
  • 注册遍历猜解已有账号

1.2 邮箱用户名

  • 前后空格

  • 大小写

    1.3 手机用户名

  • 前后空格

  • +86

1.4 登录

  • 撞库
  • 账号劫持
  • 恶意尝试账号密码锁死账户

1.5 找回密码

  • 任意用户密码重置
  • 密码重置后新密码在返回包中
  • token验证逻辑在前端
  • X-Fowarded-Host处理不正确

1.6 修改密码

  • 越权修改密码
  • 修改密码没有旧密码验证

1.7 申述

  • 身份伪造
  • 逻辑绕过

2FA

  • 重置密码后自动登录没有2FA
  • OAuth登录没有启用2FA
  • 2FA可爆破
  • 2FA有条件竞争
  • 修改返回值绕过
  • 激活链接没有启用2FA
  • 可通过CSRF禁用2FA

验证码

  • 验证码可重用
  • 验证码可预测
  • 验证码强度不够
  • 验证码无时间限制或者失效时间长
  • 验证码无猜测次数限制
  • 验证码传递特殊的参数或不传递参数绕过
  • 验证码可从返回包中直接获取
  • 验证码不刷新或无效
  • 验证码数量有限
  • 验证码在数据包中返回
  • 修改Cookie绕过
  • 修改返回包绕过
  • 验证码在客户端生成或校验
  • 验证码可OCR或使用机器学习识别
  • 验证码用于手机短信/邮箱轰炸

详细网站:https://xz.aliyun.com/t/6029

Session

  • Session机制
  • Session猜测 / 爆破
  • Session伪造
  • Session泄漏
  • Session Fixation

越权

    • 水平越权

      攻击者可以访问与他拥有相同权限的用户的资源 权限类型不变,ID改变

    • 垂直越权

      低级别攻击者可以访问高级别用户的资源 权限ID不变,类型改变

    • 交叉越权

      权限ID改变,类型改变

随机数

  • 使用不安全的随机数发生器
  • 使用时间等易猜解的因素作为随机数种子

其他

  • 用户/订单/优惠券等ID生成有规律,可枚举
  • 接口无权限、次数限制
  • 加密算法实现误用
  • 执行顺序
  • 敏感信息泄露
文章作者: jia9yo
文章链接: http://wlaqstcs.com/997/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 jia9yo-网络安全渗透测试

评论