逻辑漏洞概述[通俗易懂]

逻辑漏洞概述[通俗易懂]访问:主体与客体之间的信息流动。主动的是主体,被动的是客体。主体访问客体的四个步骤:身份标识->身份验证(数据库匹配信息,判断身份是否合法)->授权(判断身份是谁,管理员或正常账户)->审计(记录操作)访问控制模型:自主访问控住(DAC大部分使用):由客体的属主自主对客体进行管理,自主决定是否将访问权限授予其他主体。强制访问控制(MAC军方或重要政府部门用):安全…

大家好,又见面了,我是你们的朋友全栈君。

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

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

访问控制模型:
自主访问控住(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

令牌可预测
用户令牌具有一定的规律,可被其他人预测,如身份证号、学号、手机号、时间等

思考:十位的时间戳和十位的顺序码是否安全?
理解:每一秒都会产生十的十次方的可能,爆破难度极大。

令牌可获取
用户令牌采取不安全的传输、存储,易被他人获取:
用户令牌在URL中传输:明文传输、发送给他人。
用户令牌存储在日志中:未授权用户易获取。

令牌不失效(会造成固定会话攻击):
用户令牌采取不安全的传输、存储,易被他人获取:
令牌有效期过长(在一段时间内使令牌失效)、令牌尝试次数过多(提交次数一定时要使令牌无效)、无效令牌的重置。

越权操作

越权操作是信息系统中较为常见的一种漏洞,指的是信息系统对用户的操作权限审核不严,从而使得用户进行了自己权限之外的操作。
权限控制的方法:
防火墙ACL策略:主体-规则-客体
Linux文件权限:主体-读写、执行-客体
web应用权限:基于URL、基于方法、基于数据
RBAC:web应用系统常采用此模型。

未授权访问

未授权访问需要安全配置或权限认证的地址、授权页面存在缺陷,导致其他用户可以直接访问,从而引发重要权限可以被操作、数据库、网站目录等敏感信息泄露。
目前主要存在未授权访问的漏洞有
在这里插入图片描述

Web应用权限
正常情况下,管理后台的页面应该只有管理员才能够访问,而且搜索引擎的爬虫也不应该搜索到这些页面,但这些系统未对用户访问权限进行控制,导致任意用户只要构造出了正确URL就能够访问这些页面或者用爬虫爬到页面目录。

防御解决方案
隐藏:只能组织用户无法猜测到后台页面,进行大量爆破还是可能扫描出来的。
页面权限控制:可以阻止非认证用户登录后台。
最好是管理员在内网进行管理。用户在外网进行搜索。

测试方法

  1. Google-Hacking
  2. 域名爆破
  3. 端口服务扫描
  4. 域名关联

越权操作
水平越权:攻击者尝试访问相同级别的用户资源。
垂直越权:攻击者尝试访问更高级别的用户资源。

修复总结
水平越权

  1. 设置合理的会话管理机制,将有关用户标识存在服务器上。
  2. 涉及到关于用户隐私的操作时从session中取出用户标识(如id)进行操作。
  3. 不要轻信用户的每个输入。
    垂直越权
    设置合适的会话管理机制,在每个涉及到高权限操作的页面进行会话验证。

API逻辑漏洞
现在是APP盛行的时代,客户端使用API与服务器进行数据传输,所以API安全问题频出。比如:参数校验、短信邮箱炸弹、关键参数不加密等等。

在这里插入图片描述
未加密风险:凭据、传输数据公开、资源信息泄露。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/130192.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何使用maven搭建web项目「建议收藏」

    博客园注册了有二十多天了,还没有写过博客,今天就发一篇,也便于后面查找笔记。我个人已经做了几年的javaweb开发了,由于所在的公司是业务型公司,用的都是一些老旧的稳定技术,很少接触到稍微新点的内

    2022年2月16日
    44
  • mvc中的OutputCache[通俗易懂]

    mvc中的OutputCache[通俗易懂]mvc4中有一个标记属性OutputCache,用来对ActionResult结果进行缓存,如何理解呢?概括地说,就是当你的请求参数没有发生变化时,直接从缓存中取结果,不会再走服务端的Action代码

    2022年7月2日
    26
  • 详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)

    详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)  2020年的10月份,我整理写了一篇名为:详细介绍如何在ubuntu20.04中安装ROS系统,以及安装过程中出现的常见错误的解决方法,填坑!!!的博客,已经经过了很多小伙伴的验证,确实是可行的,该篇博客链接如下:【请点击此处进行跳转】  经过近期的探索,我将安装步骤进行了进一步的优化,使安装变得更加快速,更加简单,我已经验证了其可行性,期待更多的小伙伴们一起来验证  本次安装依旧采用在虚拟机中安装的模式,一年前我用的VMware15.5,现在用的VMware16.1.1,【获取方式(附安装步

    2022年6月15日
    39
  • 纯css3天气动画场景特效

    CSS3超强大,以下是纯用CSS3+HTML实现的场景效果图:查看效果:http://hovertree.com/h/bjaf/cssrotate.htmcss33d展示中rotate()介绍与简单

    2021年12月21日
    44
  • php小皮怎么用_搭建php环境

    php小皮怎么用_搭建php环境本文主要和大家分享php环境搭建wampserver、Apache、Mysql和phpphp环境搭建csdnphp环境搭建详解,希望能帮助到大家。wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b搭建php环境。在win下,下载wampserver2.5-Apache-2.4.9-Mysql-5.6.17-php5.5.12-32b.e…

    2022年9月22日
    0
  • qt多线程编程实例_lgbt

    qt多线程编程实例_lgbt一、线程基础1、GUI线程与工作线程每个程序启动后拥有的第一个线程称为主线程,即GUI线程。QT中所有的组件类和几个相关的类只能工作在GUI线程,不能工作在次线程,次线程即工作线程,主要负责处理GUI线程卸下的工作。2、数据的同步访问每个线程都有自己的栈,因此每个线程都要自己的调用历史和本地变量。线程共享相同的地址空间。二、QT多线程简介QT通过三种形式提供了对线程…

    2022年5月3日
    49

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号