业务逻辑之身份认证

  • 实现业务功能的逻辑不严谨导致的漏洞
  • 业务流程分类

    • 用户身份验证
    • 会话管理
    • 角色和权限识别
    • 资源访问
    • 交易和支付
    • 密码重置和安全设置
    • 日志记录和审计
    • url参数
      • 某些参数可以表示用户权限(身份)
    • http请求头
      • 用户身份验证信息存在请求头部中的 Authorization字段中
    • http请求正文
    • Cookies
    • 数据库记录
    • 服务器端会话状态
    • 客户端状态
    • 日志文件
    • 后端应用程序代码
    • 前端应用程序代码
  • 逻辑漏洞危害性标准

    • 数据泄露和隐私问题
      • 数据保护措施不到位导致的用户数据的泄露
    • 未授权访问
      • A能看到B、C等用户的一些信息;如订单信息等
    • 金融损失
    • 合规性问题
      • 数据保护问题可能会导致公司被起诉;安全性法规
    • 业务中断
      • 业务功能中断;无法访问该业务功能;用户可能流失
    • 拒绝服务
      • 服务器宕机;无法访问
    • 恶意行为和欺诈
      • 公司损失,名誉受损
    • 声誉损失
    • 长期存在和影响
      • 长期不安全因素的存在会导致用户的流失
    • 难以检测
      • 逻辑漏洞的产生没有具体的标准,因此难以检测
  • 漏洞挖掘思路

    • 边界条件测试
      • 购物车数量使用负数或超过最大值进行测试;看是否有数量检测漏洞
    • 交叉验证
      • 删除帖子后快速恢复帖子,查看帖子状态是否有改变
    • 颠倒顺序
      • 对于选择有先后顺序要求的,如订票先选定日期后选定座位
    • 重复操作
      • 重复投票
    • 越权操作
      • 通过低权限账号实现了高权限账号的操作
      • 如医生账号可以看患者病历,登入患者账号可以尝试查看其他患者病历,如果可以则存在越权漏洞
    • 并发操作
      • 多用户购买同一商品(超出库存),查看是否会因为库存不一致导致出错
    • 审查业务逻辑代码
      • 代码审计的内容,通过代码查看逻辑;
      • 如在线投票程序;投票结束了依然能够投票
  • 身份验证问题

    • 验证码
      • 类型
        • 图片验证码
          • 滑动验证码、普通图片验证码、数字算法验证码等
          • 随机性
            • 字符、颜色、字体、位置等随机
          • 失真或噪音
            • 一堆污点或斜线,导致无法轻易识别中间的验证码
          • 时间限制
            • 验证码有输入时间限制
          • 可绕过的情况
            • 图像验证码不刷新或无效
              • session验证,保证session或cookie不变就行
            • 验证码复用
              • session验证,保证session或cookie不变就行
            • 存在无验证界面
            • 万能验证码
              • 0000 6666 9999 等用于测试的验证码
            • 验证码数量有限
              • 将有限的图片保存生成字典进行爆破
            • 简单验证码识别
        • 短信验证码
          • 通过手机号进行验证
          • 绕过方法
            • 短信验证码生命期限内可暴力枚举
              • 一些短信验证码有五分钟或十分钟的时间有效期
            • 短信验证码在数据包中返回
              • 可能出现验证码存在数据包中的情况(虽然感觉不合理)
            • 修改请求数据包参数或 Cookie 值绕过
              • 某些参数可能可以规避短信验证码验证
            • 修改返回包绕过
              • 针对前端验证,通过修改返回包的状态码进行绕过
            • 攻破短信验证码接口
              • 找到对应网站使用的短信验证码接收平台,攻破该平台也能进行登录
            • 默认万能验证码
              • 0000 9999等
            • 验证码无校验
      • 场景

        • 登录注册重置密码
        • 活动秒杀
        • 点赞发帖
        • 数据保护
          • 支付
          • 修改重要账户信息
          • 评论私信留言
      • 漏洞修复方案
        • 增加复杂性
        • 添加噪音或失真
        • 动态验证码
        • 图像反扭曲
        • 多因素身份验证
        • 定期更新设计
    • 身份验证
      • 利用场景
        • 用户登录
        • 多因素身份验证
        • 社交媒体登录
        • 密码重置
        • API身份认证
        • SSO单一登录
        • 电子商务支付
        • 云服务和存储
      • 绕过手段
        • 暴力破解(用户名、密码)
        • cookie和session验证
          • 利用插件修改cookie中的某个参数冒仿他人登录
        • 弱加密
          • token固定或者为用户名的编码,可以猜到的
      • 防御手段
        • 多因素认证
        • 密码策略
        • 防止暴力破解
        • 单点登录
        • 安全问题和答案
        • 弱密码检测
    • 密码找回
      • 测试流程
        • 点击正常的密码找回,尝试各种找回条件,记录所有数据包
        • 分析数据包,找到敏感的参数或者数据信息
        • 分析后台找回机制采用的验证手段
        • 修改数据包验证推测
      • 绕过手段
        • 验证码暴力破解
        • 验证码直接返回
        • 跳过验证步骤
        • 利用邮箱、手机号进行绑定
        • 第三方登录绑定其他用户
        • 无验证手机号是否为绑定手机号
        • 本地验证绕过
        • 重置密码最后一步uid或者username可控
        • 个人中心修改密码逻辑错误
        • 利用session重新绑定用户
        • 去掉验证参数绕过验证
        • 任意输入验证码修改用户密码
      • 防御手段
        • 验证码防御
        • 多重验证手段验证:绑定手机号、用户名、邮箱等
        • 只提供修改密码的界面,不提供其他任何可操作参数
    • 用户输入合规性
      • 用户的输入要符合系统的标准、规则、约束;以确保功能正常的运行
      • 利用场景(所有输入的地方)
        • 表单验证
        • 支付信息
        • 身份验证
        • 数据过滤
        • 搜索引擎查询
        • 评论和反馈
        • 电话号码验证
        • 电子邮件验证
      • 利用手段
        • 注入测试
        • xss测试
        • 数据极端性测试
          • 超长字符串测试
          • 特殊符号
          • 整数溢出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

I_WORM

大佬们,赏点儿碎银吧~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值