Учетные данные для MySQL включают не только имя пользователя и пароль, но и набор разрешенных IP-адресов. Таким образом, даже если у нас есть правильное имя пользователя и пароль, но соединение установлено с неразрешенного IP, мы получим ошибку 1045 «Отказано в доступе» от sqlmap.
Чтобы проиллюстрировать проблему, я настроил тестовую базу данных testdb
с пользователем admin
. Вот учетные данные пользователя:
MariaDB [testdb]> select host,user,password from mysql.user where user='admin';
+-------------+-------+-------------------------------------------+
| host | user | password |
+-------------+-------+-------------------------------------------+
| 92.168.0.20 | admin | *00A51F3F48415C7D4E8900010101010101010101 |
+-------------+-------+-------------------------------------------+
Как показано в столбце host
, пользователю admin
разрешен доступ к серверу только с IP 92.168.0.20. Теперь, если я запускаю sqlmap с этого IP-адреса, он преуспевает:
$ sudo sqlmap -d 'mysql://admin:[email protected]:3306/testdb'
...
[*] starting at 09:28:43
[09:28:43] [INFO] connection to mysql server 92.168.0.99:3306 established
[09:28:43] [INFO] testing MySQL
[09:28:43] [INFO] resumed: [[u'1']]...
[09:28:43] [INFO] confirming MySQL
[09:28:43] [INFO] resumed: [[u'1']]...
[09:28:43] [INFO] the back-end DBMS is MySQL
back-end DBMS: MySQL >= 5.0.0
[09:28:43] [INFO] connection to mysql server 92.168.0.99:3306 closed
[*] shutting down at 09:28:43
Если я запускаю sqlmap с другого IP-адреса, он завершается с ошибкой 1045 «Отказано в доступе» (точно так же, как в вашем выводе):
$ sudo sqlmap -d 'mysql://admin:[email protected]:3306/testdb'
...
[*] starting at 09:32:00
[09:32:00] [CRITICAL] SQLAlchemy connection issue ('(_mysql_exceptions.OperationalError)
(1045, "Access denied for user 'admin'@'92.168.0.55' (using password: YES)")')
[*] shutting down at 09:32:00
Так что, если вы уверены, что у вас правильный логин и пароль, то проблема, скорее всего, в разрешенных IP-адресах. При создании пользователя MySQL общепринятой практикой является разрешение доступа только с локального хоста. Поэтому у вас может быть правильное имя пользователя и пароль, но вы можете использовать их только локально на сервере. С другой стороны, тот факт, что сервер принимает подключения извне, может указывать на то, что некоторым другим IP-адресам разрешено подключение. В этом случае вам нужно выяснить, какие IP-адреса разрешены, и подключиться с одного из них.
person
SergiyKolesnikov
schedule
06.03.2018
[CRITICAL] SQLAlchemy connection issue ('(_mysql_exceptions.OperationalError) (1045, "Access denied for user 'admin'@'17.45.65.11' (using password: YES)")')
это означает, что мои учетные данные верны, но сервер отклонил мой IP-адрес... должен быть способ - person CatChMeIfUCan   schedule 05.03.2018--ssl-mode=REQUIRED
или у пользователя естьREQUIRE SSL
илиREQUIRE X509
? - person SuperShoot   schedule 06.03.2018