《网络安全自学教程》- MySQL匿名用户的原理分析与实战研究

++《网络安全自学教程》++

低版本的MySQL数据库在安装时会创建一个用户名和密码为空的账户,也就是匿名账户。即使升级到高版本,匿名账户仍然会存在。

MySQL匿名账户

1、检查是否存在匿名账户

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

查询结果中,用户名和密码为空的,就是匿名账户。

扩展:MySQL5.7版本开始,将 mysql.user 表的 password 字段换成了 authentication_string,老版本查询用户信息要用 select user,password from mysql.user;

2、检查用户权限

sql 复制代码
show grants for ''@'localhost';

查询结果中,匿名用户的权限是 USAGE,是服务器管理的权限,权限很高,有风险。

扩展:解释一下查询结果中的权限是什么意思

  • GRANT:修改用户权限的命令。
  • USAGE:给用户的权限。
  • ON:权限对哪些 数据库.表 生效,这里的 *.* 意思是对所有数据库、所有表生效。
  • TO:权限给那个用户,格式 '用户名'@'登录主机'

3、创建匿名账户

除了系统自带的匿名账户,我们也可以自己创建匿名账户。

sql 复制代码
create user ''@'localhost';

4、使用匿名账户登录

用户名和密码留空,指定登录主机,可以登录匿名账户。

bash 复制代码
 mysql -u -p -hlocalhost

这是一个风险点,基线加固或者漏扫的时候都会检查出来。

5、删除匿名账户

使用root或高权限用户删除。

sql 复制代码
delete from mysql.user where user='';

删除后需要 flush privileges; 刷新权限,否则还是可以登录。

相关推荐
星纬智联技术1 分钟前
AI搜索引擎正在改变引用标准:品牌内容需要重建哪些内容判断体系
人工智能·aigc·搜索引擎优化
ゆづき2 分钟前
AI能否替代小说作家?
人工智能·笔记·学习·其他·生活
技术小甜甜2 分钟前
生产环境的“后悔药”:如何利用 Dify 版本控制与回滚机制建立 AI 应用的 CI/CD 闭环?
人工智能·ci/cd·版本控制·dify·ai应用·回滚
洛水水2 分钟前
Redis对象类型与底层数据结构
数据结构·数据库·redis
完成大叔2 分钟前
Agent的对话管理模式是什么?
人工智能
Rust研习社3 分钟前
Rust 官方拟定 LLM 政策,防止 LLM 污染开源社区?
开发语言·后端·ai·rust·开源
云烟成雨TD4 分钟前
Spring AI Alibaba 1.x 系列【61】Graph 持久化执行
java·人工智能·spring
星浩AI4 分钟前
(四)Hugging Face 与魔搭实战:模型下载、API 调用与本地推理
人工智能·深度学习·llm
大熊背4 分钟前
双目拼接竖缝消除(ISP 分区锐化实操方案) 优化方案
人工智能·算法·双目拼接
放下华子我只抽RuiKe54 分钟前
React 从入门到生产(六):路由与导航
前端·人工智能·深度学习·react.js·前端框架·html·claude code