《网络安全自学教程》- 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; 刷新权限,否则还是可以登录。

相关推荐
LabVIEW开发1 小时前
LabVIEW 64位安装的位深陷阱:工具包、内存与工程兼容
数据库·labview·labview知识·labview功能·labview程序
寺中人1 小时前
MySQL 8.0 Windows 完整安装教程:环境配置、密码重置与常见报错排查
数据库·windows·mysql·环境搭建·mysql 安装
这个DBA有点耶2 小时前
同样48核配置TPS差1倍?高性价比数据库一体机的“软硬协同”才是分水岭
服务器·数据库·架构
嘟嘟嘟95272 小时前
Kubernetes 引入 KYAML:更安全的 YAML 子集
人工智能·架构·开源
智购科技自动售货机厂家2 小时前
2026自动售货机设备清洁效果自动验证:从图像比对到评分算法的工程实践~YH
人工智能·算法·计算机视觉
财迅通Ai2 小时前
光智科技全景透视:一家被“光学元件”标签遮蔽的稀散金属材料平台
大数据·人工智能·科技·光智科技
这个DBA有点耶2 小时前
MySQL 8.0执行计划分析利器:EXPLAIN ANALYZE到底比EXPLAIN强在哪?
数据库·mysql·代码规范
VIP_CQCRE2 小时前
用 Ace Data Cloud 接入 Kling Motion:让 AI 视频生成从“好看”走向“可控”
ai·api·视频生成·kling·acedatacloud
AI技术新视界2 小时前
失控的认知外包:大语言模型如何像病毒般入侵人类思维与社会生态
人工智能·llm·认知科学
后端小肥肠2 小时前
还在找PPT 生成工具?我集成了 GitHub 高星 Skill,自动匹配最优方案
人工智能·aigc·agent