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

相关推荐
神州数码云基地几秒前
告别传统OCR瓶颈,DeepSeek-OCR如何重塑文档智能?
人工智能·llm·ocr·大语言模型·deepseek
2401_88227372几秒前
HTML怎么创建成就隐藏后恢复_HTML“重新公开”操作入口【详解】
jvm·数据库·python
小夏子_riotous1 分钟前
Docker学习路径——7、Docker搭建MySQL 主从复制
linux·运维·mysql·docker·容器·centos·云计算
码农阿豪2 分钟前
群晖部署Moodist配内网穿透穿透,把白噪音服务搬到公网上
数据库·spring boot·后端
了不起的云计算V3 分钟前
以AI及自主创新重构教育数字化底座,华为擎云给出更优答案
人工智能·华为·重构
weixin_458580123 分钟前
如何自定义修改 Traccar Web 界面模板
jvm·数据库·python
code_pgf4 分钟前
LLM大模型评测(ARC-AGI-2)
人工智能·transformer·agi
m0_515098425 分钟前
如何修改AWR保留时间_将默认8天保留期延长至30天的设置
jvm·数据库·python
银河系的一束光6 分钟前
MySQL遇到的问题
数据库·mysql
大龄程序员狗哥6 分钟前
第23篇:GAN实战:生成二次元头像——创造属于你的虚拟形象(项目实战)
人工智能·神经网络·生成对抗网络