MySQL匿名空用戶名處理


問題描述:公司漏掃發現數據庫內出現空用戶名及密碼,需要對這些用戶進行整改

 

1.首先出現了疑問,這些空的用戶名是怎么出現的,而且不附帶密碼。

 

2.可以手動這樣創建這樣的用戶名和密碼形式么。

 

3.如果能這樣創建一個用戶,是不是我可以不用用戶名和密碼能直接登錄服務器呢。

 

4.如何對這樣的形式存在進行規避。

 

 

空用戶名為匿名用戶,那么匿名用戶能登錄么,登錄方式可以不用帶用戶名么。延伸到了mysql的匿名用戶,安裝完MySQL后,系統默認會創建一個不需要密碼的root用戶,和一個無用戶名無密碼的匿名用戶(Anonymous Account)。進行下面的初始化操作以合理授權,增強安全。

mysql> create user ''@'localhost' ;
Query OK, 0 rows affected (0.00 sec)
mysql> select user,host,authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| employee_proxy   | %         | *DC6775B6D1F01EFD99CC191E929862480DAC2F7A                              |
| root             | %         | *858D7135C67CFFAEE40C01A38AB99018DBB245A7                              |
| test01           | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| tspmlf           | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| username         | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
|                  | localhost |                                                                        |
| backuper         | localhost | *4DDFC2472B45DA20DB77FD7F3C19996CCCE35897                              |
| employee         | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *858D7135C67CFFAEE40C01A38AB99018DBB245A7                              |
| zabbix           | localhost | *C5A9E29672800EE5E1A1B0EA8C397728FD1660D8                              |
+------------------+-----------+------------------------------------------------------------------------+
13 rows in set (0.00 sec)
[mysql@rhel7 ~]$ /usr/local/mysql8/bin/mysql -u -p -hlocalhost -P33306 -S /data/mysql8/db_dxpt08/mysql.sock
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.22 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

--測試證明,采用匿名登錄測試可以直接登錄數據庫,不過登錄進來權限受限制
mysql
>

  mysql> show grants for ''@'localhost' ;
  +--------------------------------------+
  | Grants for @localhost |
  +--------------------------------------+
  | GRANT USAGE ON *.* TO ``@`localhost` |
  +--------------------------------------+
  1 row in set (0.00 sec)


mysql> select current_user(),user();
+----------------+--------------+
| current_user() | user()       |
+----------------+--------------+
| @localhost     | -p@localhost |
+----------------+--------------+
1 row in set (0.00 sec)

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)

mysql>
mysql>
mysql> select user,host from mysql.user;
ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for table 'user'

 

如何進行規避,刪除這種方式

--用drop ‘’@‘localhost’ 方式進行刪除

mysql> select user,host,authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| employee_proxy   | %         | *DC6775B6D1F01EFD99CC191E929862480DAC2F7A                              |
| root             | %         | *858D7135C67CFFAEE40C01A38AB99018DBB245A7                              |
| test01           | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| tspmlf           | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| username         | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
|                  | localhost |                                                                        |
| backuper         | localhost | *4DDFC2472B45DA20DB77FD7F3C19996CCCE35897                              |
| employee         | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *858D7135C67CFFAEE40C01A38AB99018DBB245A7                              |
| zabbix           | localhost | *C5A9E29672800EE5E1A1B0EA8C397728FD1660D8                              |
+------------------+-----------+------------------------------------------------------------------------+
13 rows in set (0.00 sec)

mysql> drop user ''@'localhost';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> select user,host,authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| employee_proxy   | %         | *DC6775B6D1F01EFD99CC191E929862480DAC2F7A                              |
| root             | %         | *858D7135C67CFFAEE40C01A38AB99018DBB245A7                              |
| test01           | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| tspmlf           | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| username         | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| backuper         | localhost | *4DDFC2472B45DA20DB77FD7F3C19996CCCE35897                              |
| employee         | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *858D7135C67CFFAEE40C01A38AB99018DBB245A7                              |
| zabbix           | localhost | *C5A9E29672800EE5E1A1B0EA8C397728FD1660D8                              |
+------------------+-----------+------------------------------------------------------------------------+
12 rows in set (0.00 sec)

 

--delete from mysql.user where user='';

mysql> create user ''@'127.0.0.1' ;
Query OK, 0 rows affected (0.01 sec)

mysql> select user,host,authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| employee_proxy   | %         | *DC6775B6D1F01EFD99CC191E929862480DAC2F7A                              |
| root             | %         | *858D7135C67CFFAEE40C01A38AB99018DBB245A7                              |
| test01           | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| tspmlf           | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| username         | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
|                  | 127.0.0.1 |                                                                        |
| backuper         | localhost | *4DDFC2472B45DA20DB77FD7F3C19996CCCE35897                              |
| employee         | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *858D7135C67CFFAEE40C01A38AB99018DBB245A7                              |
| zabbix           | localhost | *C5A9E29672800EE5E1A1B0EA8C397728FD1660D8                              |
+------------------+-----------+------------------------------------------------------------------------+
13 rows in set (0.00 sec)

mysql> delete from mysql.user where user='';
Query OK, 1 row affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> select user,host,authentication_string from mysql.user;
+------------------+-----------+------------------------------------------------------------------------+
| user             | host      | authentication_string                                                  |
+------------------+-----------+------------------------------------------------------------------------+
| employee_proxy   | %         | *DC6775B6D1F01EFD99CC191E929862480DAC2F7A                              |
| root             | %         | *858D7135C67CFFAEE40C01A38AB99018DBB245A7                              |
| test01           | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| tspmlf           | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| username         | %         | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257                              |
| backuper         | localhost | *4DDFC2472B45DA20DB77FD7F3C19996CCCE35897                              |
| employee         | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9                              |
| mysql.infoschema | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.session    | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| mysql.sys        | localhost | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| root             | localhost | *858D7135C67CFFAEE40C01A38AB99018DBB245A7                              |
| zabbix           | localhost | *C5A9E29672800EE5E1A1B0EA8C397728FD1660D8                              |
+------------------+-----------+------------------------------------------------------------------------+
12 rows in set (0.00 sec)

 

匿名用戶一般會在剛創建完數據庫時,用來防止用戶忘記登錄密碼。如果不及時清理掉,會暴露一個風險給漏掃。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM