• WEB 渗透之越权


    越权

    一、介绍

    1. 定义:
      1. 水平越权: 使用 A 账号登陆到 B 账号
      2. 垂直越权: 使用普通用户账号获取到管理员账号的权限

    二、 产生原理

    1. 前端安全造成: 界面
      判断用户等级后,代码界面部分进行可选显示
    2. 后端安全造成: 数据库
      管理员和普通用户同一个表,设置级别列
      如果在访问数据包中有传输用户的编号、用户组编号或类型编号的时候,那么尝试对这个值进行修改,就是测试越权漏洞的基本

    三、漏洞

    image-20220804112008831

    1. 水平越权

    1. 介绍: 水平权限攻击,也叫做访问控制攻击,服务器在接收到用户请求,修改某条数据时,没有对请求者进行检查,或者只是简单的从用户提交的表单中获取 userid, 导致攻击者可以修改不属于自己的数据。在所有更新语句中,都可能产生这个漏洞

    2. 攻击:
      示例: 服务器从用户提交的表单中获取发送请求的请求者 userid , 一般都是隐藏域,但是我们可以拦截请求包对 useid 数据进行修改,从而可以修改不属于的自己的信息

    3. 防御:

      从用户的加密认证的 cookie 中获取当前用户的 id, 并且在执行的 sql 语句中加入当前用户的 id 作为条件语句,由于 cookie 是加密的,所以攻击者无法修改加密信息

    2. 垂直越权

    1. 介绍: 垂直权限攻击又叫权限提升攻击,原理是 WEB 应用没有做权限控制或仅仅只在菜单上做了权限通知,导致恶意用户只要猜测其他管理页面的URL,就可以访问或控制其他角色拥有的数据或页面,达到权限提升的目的。

    2. 攻击:
      示例:

      <tr><td><a href="/user.jsp">管理个人信息a>td>tr>
      <%if (power.indexOf("administrators")>-1){%>
      <tr><td><a href="/userlist.jsp">管理所有用户a>td>tr>
      <%}%>
      
      • 1
      • 2
      • 3
      • 4

      ​ 攻击者只需要猜中管理所有用户的页面url就可以越权操作了。

    3. 防御:
      只需要在每个页面加载之前进行权限验证

    4、相关知识点

    1. Cookie/Session 机制详解

    Cookie/Session 机制详解

    写的很好,自己总结也是 CV ,就不浪费篇幅了

    2. 基于 Token 的身份验证

    1. 使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录状态,大概流程如下:

      1. 客户端使用用户名跟密码请求登录
      2. 服务端收到请求,去验证用户名和密码
      3. 验证成功后,服务端会签发一个 Token, 再把这个 Token 发送给客户端
      1. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
      2. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
        okie 里或者 Local Storage 里
      3. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
      4. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据
  • 相关阅读:
    聊聊logback的AsyncAppender
    k8s入门之Service(六)
    [附源码]Python计算机毕业设计Django线上社区管理系统
    【描述一下 V8 执行一段JS代码的过程?】
    配置Mysql与注册登录模块
    Spring Boot——Thymeleaf生成PDF实战教程
    FPGA结构分析——ODDR,网口储备点2
    三维跨孔电磁波CT数据可视化框架搭建
    知识表示学习(三):TransR
    springcloud环境搭建
  • 原文地址:https://blog.csdn.net/weixin_53150482/article/details/126156937